我想从db1中将3个表导出到db2中。oracle序列初始化
出口开始前,我会为那些3个表序列。
CREATE SEQUENCE TEST_SEQ START WITH 1 INCREMENT BY 1;
导出后,我将重新初始化sequnce值以匹配表中的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;
该过程编译和执行没有问题。
但是,当我想检查序列的最后一个值时,如 从dual选择TEST_SEQ.nextval;
我仍然得到“1”。
有人能告诉我为什么我的程序不会影响我的序列吗? ps。我正在使用oracle sql developper传递sql。
感谢
谢谢,我忘了增加我的顺序!您的解决方案有效 – gospodin