Popular 2 tabelas usando o comando FOR em PL/SQL

23/11/2013

0

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

Responder

Post mais votado

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

Deivison Melo

Deivison Melo
Responder

Mais Posts

03/12/2013

Eliézio Mesquita

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,
Responder

04/12/2013

Marcus Almeida

Obrigado :]
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar