Acabei de aprender isso e já estou disponibilizando aqui.
Situação:
Criei uma procedure para chamar duas outras procedures. Uma cria o registro Pai e a outra o registro Filho.
Eu tinha que passar o código do registro Pai para a procedure dois.
Antes tinha resolvido isso armazenando o valor da sequence em uma variável e depois passava para as duas procedures, ficando assim:
create or replace procedure INSERIR_MSG_USUARIO(pusr_id number,
ptitulo varchar2, pmensagem varchar2, pcod_sistema number)
is
seq number := 0;
begin
select cam_nrid.nextval into seq from dual;
inserir_campanha('MENSAGEM AUTOMÁTICA AO USUÁRIO',
ptitulo, pmensagem, pcod_sistema, seq);
inserir_registro_envio(seq, pusr_id, sysdate);
end;
Essa procedure é só para exemplificar.
Pesquisando no google achei como obter o código da sequence na clausula INSERT, e retornar o seu valor através de um parâmetro do tipo OUT.
Obtendo o valor da Sequence
Retornado um valor através da procedure
Usando o returning não precisei mais dessa linha: select cam_nrid.nextval into seq from dual;
Espero que possa ser útil.
Fiquem na Paz!!!
Nenhum comentário:
Postar um comentário