Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia Pessoal.
Estou precisando de um auxilio em PLSQL.
O que eu quero fazer é o seguinte.
Tenho um external table ext_dados quero pegar os dados desta tabela e atualizar os dados existentes e inserir quando não existir, isso com algumas validações.
Minha ideia é o seguinte:
Declare
Cursor Cur_ext_dados Is
Select *
From ext_dados; exit when Cur_ext_dados%notfound;
insert into comp_dados (c1.nome, c1.email, c1.dataAC, C1.id, sysdate, 1)
where not exists (select id from comp_dados where comp_dados.id = C1.id);
update comp_dados set dataAC = C1.dataAC where exists
(select id, dataAC from com_dados where comp_dados.id = C1.id and
comp_dados.dataAC < C1.dataAC);
update comp_dados set qtdH = (qtdH + 1) where exists
(select id from comp_dados where comp_dados.id = C1.id);
update comp_dados set dtAtu = sysdate where exists
(select id from comp_dados where comp_dados.id = C1.id);
End Loop;
End;
Estou com dúvidas no procedimento de inserir e atualizar, não sei se estão correto, mas a ideia
é que se o registro não existir na tabela comp_dados devo inserir os dados.
Agora se o registro existir quero atualizar alguns campos da seguinte forma.
dataAC
se a data do cursor for > que a data da tabela comp_dados quero atualizar o campo da tabela com o dado do cursor.
quero atualizar o campo da tabela qtdh com a soma dele + 1 se existir o registro.
queto atualizar o campo da tabela dtAtu com a data do dia.
Se alguém poder ajudar agradeço.
Carregando comentários...