WKŁADAJ i AKTUALIZUJ rekord za pomocą kursorów w wyroczni
Mam 2 stołystudent
istudLoad
oba mają 2 polastudID
istudName
. Chcę załadować dane zstudent
stół dostuLoad
stół. Jeśli dane już istnieją wstudLoad
tabeli, a następnie powinien zostać zaktualizowany, w przeciwnym razie powinien zostać wstawiony. następujący kod to mój kod:
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;
To nie działa. wiersze w tabeli studLoad nie są aktualizowane. Jak to rozwiązać? W serwerze SQL używamyIF EXISTS(select...from stuLoad..)
aby sprawdzić, czy rekord istnieje w tabeli, czy istnieje sposób, aby zrobić to samo w Oracle? jeśli tak, proszę daj mi znać to samo.