Kbase 47395: Criação Sequence Oracle
Autor |
  Marco Aurelio Scheidt - CAT |
Acesso |
  Público |
Publicação |
  21/03/2012 |
|
Abaixo um script que pode ser útil caso o cliente venha perder as sequences do Oracle.
Nesse caso o script cria somente a sequence relacionada a coluna progress_recid de cada tabela, as demais sequences de negócio tem que ser criada com os scripts da expedição.
O comando abaixo faz criação das sequences, onde basta substituir XPTO pelo nome do usuário conectado no Oracle.
declare
v number;
e_ja_existe exception;
pragma exception_init (e_ja_existe, -955);
begin
for c in (select table_name from dba_tables where owner = 'XPTO' ORDER BY table_name) loop
execute immediate 'select max(progress_recid) from ' || c.table_name into v;
begin
execute immediate 'create sequence ' || c.table_name || '_seq start with ' || NVL(v,1);
exception
when e_ja_existe then null;
end;
end loop;
exception
WHEN OTHERS THEN NULL;
end;
/
O comando abaixo cria um arquivo com os comandos de CREATE SEQUENCE.
set serveroutput on
spool c:\temp\create_sequence.sql;
declare
v number;
e_ja_existe exception;
pragma exception_init (e_ja_existe, -955);
begin
for c in (select table_name from dba_tables where owner = 'XPTO' ORDER BY table_name) loop
execute immediate 'select max(progress_recid) from ' || c.table_name into v;
begin
dbms_output.PUT_LINE('create sequence ' || c.table_name || '_seq start with ' || NVL(v,1) || ';');
exception
when e_ja_existe then null;
end;
end loop;
exception
WHEN OTHERS THEN NULL;
end;
/
spool off;