hibernate(3.6.9.Final) と oracle 11g データベースを jdbc(ojdbc6:oracle.jdbc.OracleDriver) で使用しています。私の接続文字列は jdbc:oracle:thin:@SERVERNAME:1521:ORCL datasource: com.mchange.v2 です。 .c3p0.ComboPooledDataSource
ioc:春 3.0.7.RELEASE
サーバー: トムキャット 6
私の問題の説明は次のとおりです。Oracle サーバー MY_SC と MY_OLD_SC で 2 つのスキーマ (ユーザー) が定義されています。 MY_TABLE がありますが、MY_ID 列に加えて MY_NAME 列もあります
MY_SC ユーザーでアプリケーションを起動し、検証時に休止状態にすると、次の例外で失敗します。
org.hibernate.HibernateException: 行がありません: MY_OLD_SC.MY_TABLE の MY_NAME
MY_SC ユーザーと接続していることを確認したにもかかわらず、間違ったスキーマに接続しているようです。データベースから MY_OLD_SC を削除した後でのみ、MY_SC に接続できます。
この問題は一貫しておらず、さまざまな詐欺で作業できる場合もありますが、一度失敗すると、使用したいものを除いてデータベース内のすべてのスキーマを削除する必要があります。ほとんどの場合、新しいスキーマの impdp を使用した後に発生しますが、impdp の後だけではありません
私がSQL開発者に接続すると、ユーザーへの接続が正しいように見えることに注意してください。
ユーザーを作成するためのステートメント:
CREATE USER username IDENTIFIED BY username
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON USERS;
GRANT conn TO username;
impdb のコード:
./impdp system/pass@orcl remap_schema=org_name:new_name directory=DATA_PUMP_DIR TRANSFORM=oid:n dumpfile=backup.dmp
何が問題なのかがわかれば素晴らしいと思いますが、おそらくユーザーを別の方法で作成する必要がありますか? この問題の原因は何ですか?
よろしくお願いします