17,382
社区成员




-- 9楼修正一下( 创建序列语句的末尾加个分号(;) ):
spool c:\sequence_code.txt;
declare
v_sequence varchar2(4000);
v_nextval number(38,0);
begin
for i in (select sequence_name from user_sequences) loop
select dbms_metadata.get_ddl('SEQUENCE',i.sequence_name,user) into v_sequence from dual;
execute immediate 'select '||i.sequence_name||'.'||'nextval from dual' into v_nextval;
v_sequence := substr(v_sequence,1,instr(v_sequence,'START WITH',1,1)+length('START WITH'))||' '||to_char(v_nextval)||' '||
substr(v_sequence,instr(v_sequence,'CACHE'))||';';
dbms_output.put_line(v_sequence);
end loop;
end;
/
spool off;
-- 执行下面的语句,将在C盘根目录下生成sequence_code.txt文件,
-- 这个文件就是所有当前用户下创建序列的代码:
spool c:\sequence_code.txt;
declare
v_sequence varchar2(4000);
v_nextval number(38,0);
begin
for i in (select sequence_name from user_sequences) loop
select dbms_metadata.get_ddl('SEQUENCE',i.sequence_name,user) into v_sequence from dual;
execute immediate 'select '||i.sequence_name||'.'||'nextval from dual' into v_nextval;
v_sequence := substr(v_sequence,1,instr(v_sequence,'START WITH',1,1)+length('START WITH'))||' '||to_char(v_nextval)||' '||
substr(v_sequence,instr(v_sequence,'CACHE'));
dbms_output.put_line(v_sequence);
end loop;
end;
/
spool off;