• ベストアンサー

Oracleインポート

Oracle9iでエクスポートしたファイルをインポートしていますが、順序(Sequence)が元にもどりません。エクスポート前が10だとするとインポートしたときには、create sequenceを行った後の状態になっています。これをどうにか、インポート後は10にしたいのですがどうすればよろしいのでしょうか。エクスポート、インポートの権限としてDBAやEXP_FULL_DATABASE,IMP_FULL_DATABASEを与えています。

質問者が選んだベストアンサー

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.1

こんにちわ。 Sequence が既にある状態でImport していませんか? 手元の環境 (Oracle8i R8.1.7) で確認してみました。 確認手順は、以下の通りです。 1) test 用のユーザを作成して、connect ロール, resource ロールを付与 2) Table とSequence を作成 3) Sequence を使って、表にデータをInsert 4) ユーザ単位でExport を実行 5) test 用のユーザを削除 6) test 用のユーザを再作成して、connect ロール, resource ロールを付与 7) ユーザ単位でImport を実行 因みに、3) で10回Sequence からnextval を取得した状態で確認を行いました。 結果、Import 後のSequence のnextval は21 となりました。 → これは、キャッシュされているSequence が破棄された事が原因です。   nocache キーワードを付けてSequence を作成した状態で同様の確認を   行ったところ、11から順序番号を取得できました。

noname#198285
質問者

お礼

ありがとうございます。まさしくキャッシュされていました。nocacheを指定すると上手くいきました。それと、確かにシーケンスも再作成していました。作成せずにインポートし、ユーザも再作成すると問題ありませんでした。ありがとうございます。助かりました!!

関連するQ&A