プロが教えるわが家の防犯対策術!

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

A 回答 (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から順序番号を取得できました。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/12/03 09:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す