我想将 db1 中的 3 个表导出到 db2 中。
在导出开始之前,我将为这 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;
此过程编译和执行没有问题。
但是当我想检查序列的最后一个值时,比如 select TEST_SEQ.nextval from dual;
我仍然得到“1”。
有人能告诉我为什么我的程序没有影响我的顺序吗?附言。我正在使用oracle sql developer来传递sql。
谢谢