db1 から db2 に 3 つのテーブルをエクスポートしたいと考えていました。
エクスポートを開始する前に、これら 3 つのテーブルのシーケンスを作成します。
CREATE SEQUENCE TEST_SEQ START WITH 1 INCREMENT BY 1;
エクスポート後、テーブルの max(id) + 1 に一致するようにシーケンス値を再初期化します。
CREATE OR REPLACE PROCEDURE "TEST_SEQUENCE"
AUTHID CURRENT_USER
is
v_num number;
begin
select max(ID) into v_num from TABLE_1;
EXECUTE IMMEDIATE 'ALTER SEQUENCE TEST_SEQ INCREMENT BY ' || v_num;
EXECUTE IMMEDIATE 'ALTER SEQUENCE 1TEST_SEQ INCREMENT BY 1';
end;
/
show errors;
execute TEST_SEQ;
この手順は問題なくコンパイルおよび実行されます。
しかし、デュアルから TEST_SEQ.nextval を選択するなど、シーケンスの最後の値を確認したい場合。
私はまだ「1」を取得します。
私の手順が私のシーケンスに影響を与えなかった理由を誰か教えてもらえますか? ps。私はsqlを渡すためにoracle sql developerperを使用しています。
ありがとう