今天在工作中遇到了这样一个问题,需要将系统中序列批量刷新,但是语句拼写的没有错误,但是为嘛序列的值没有修改呢?
PL/SQL块如下:
declare
VC_SQL varchar2(200) ;
begin
for a in (select * from user_sequences)
loop
VC_SQL:= 'select ' || a.sequence_name || '.NEXTVAL from dual ';
execute immediate VC_SQL;
COMMIT;
end loop;
end;
为什么没有修改的原因这里引用yangtingku大神的文章http://space.itpub.net/4227/viewspace-429624
经过完善后这里记录以后可以直接使用的批量刷新系统序列的PL/SQL语句:
提醒:这里批量刷新了100,当然可以根据需要修改即可
DECLARE
VC_SQL VARCHAR2(200);
N_NUM NUMBER;
BEGIN
FOR i IN 1 .. 100 LOOP
FOR a IN (select * from user_sequences) LOOP
VC_SQL := 'select ' || a.sequence_name || '.NEXTVAL from dual ';
execute immediate VC_SQL INTO N_NUM;
END LOOP;
END LOOP ;
END;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26936900/viewspace-751596/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26936900/viewspace-751596/