INSERTAR y ACTUALIZAR un registro usando cursores en Oracle
Tengo 2 mesas-student
ystudLoad
ambos tienen 2 camposstudID
ystudName
. Quiero cargar datos desdestudent
mesa enstuLoad
mesa. Si los datos ya existen en elstudLoad
tabla, entonces debería actualizarse, de lo contrario debería insertarse. El siguiente es mi código para hacerlo:
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;
No funciona. Las filas en la tabla studLoad no se actualizan. ¿Cómo puedo solucionar esto? En el servidor SQL utilizamosIF EXISTS(select...from stuLoad..)
para verificar si el registro existe en la tabla, ¿hay alguna manera de hacer lo mismo en Oracle? Si es así, por favor hágamelo saber lo mismo.