INSERIR e ATUALIZAR um registro usando cursores no oracle
Tenho 2 mesasstudent
estudLoad
ambos tendo 2 camposstudID
estudName
. Quero carregar dados destudent
mesa emstuLoad
mesa. Se os dados já existirem nostudLoad
tabela, então deve ser atualizado senão deve ser inserido. A seguir está meu código para fazer isso:
create or replace procedure studentLoad is
v_id student.studID%type;
v_name student.studName%type;
v_sn studLoad.studName%type;
cursor cur_load is
select * from student;
begin
open cur_load;
loop
fetch cur_load into v_id,v_name;
exit when cur_load%notfound;
select studName into v_sn from studLoad where studID = v_id;
if(v_sn!= v_name) then
update studLoad set studName= v_name where studID= v_id;
else
insert into studLoad values(v_id,v_name);
dbms_output.put_line(v_id || ' ' || v_name);
end if;
end loop;
close cur_load;
end;
Não está funcionando. as linhas na tabela studLoad não são atualizadas. Como eu resolvo isso? No SQL Server nós usamosIF EXISTS(select...from stuLoad..)
para verificar se o registro existe na tabela, existe uma maneira de fazer o mesmo no Oracle? Se sim, por favor, deixe-me saber o mesmo.