Popular 2 tabelas usando o comando FOR em PL/SQL

Oracle

23/11/2013

Eu possuo 2 tabelas, Cidade e Hospital, preciso criar uma procedure que insira dados nas duas tabelas de uma unica vez. Já tentei de diversas maneiras mas até agora não consegui resolver essa questão. Conhecem algum meio? Obrigado
Marcus Almeida

Marcus Almeida

Curtidas 0

Melhor post

Deivison Melo

Deivison Melo

05/12/2013


crie um CURSOR usando quantas tabelas quiser (podendo ser apenas as duas desejadas ou mais de duas):
cursor cCursorTal is
  select * 
    from  
    where;

    for  vcCursorTal in  cCursorTal LOOP
      insert into sua_tabela(campo1, campo2, campon)
          values (vccursortal.campo1, vccursortal.campo2, vccursortal.campon);
    end loop;



Não sei em que deseja usar isso, mas se um exemplo de uso em um bloco anônimo seria:
declare
  cursor cCursorTal is
    select * 
      from  
      where;
begin
    for  vcCursorTal in  cCursorTal LOOP
      insert into sua_tabela(campo1, campo2, campon)
          values (vccursortal.campo1, vccursortal.campo2, vccursortal.campon);
    end loop;
     commit
exception
  when others then
    Dbms_Output.Put_Line('Erro: '||sqlerrm);    
end;


PS. Cuidado se for usar esse código em alguma TRIGGER, não há necessidade do COMMIT .

Espero ter ajudado...

Abração e bons códigos!

Emanoel Deivison
Recife - PE
GOSTEI 1

Mais Respostas

Eliézio Mesquita

Eliézio Mesquita

23/11/2013

Olá Marcus tudo bem?

Aqui mesmo no Devmedia temo um artigo que fala sobre inserção, deleção e update com procedure, segue o link:

Artigo: Procedure no Oracle

att,
GOSTEI 0
Marcus Almeida

Marcus Almeida

23/11/2013

Obrigado :]
GOSTEI 0
POSTAR