Вставить и обновить запись с помощью курсоров в оракуле
У меня есть 2 таблицыstudent
а такжеstudLoad
оба имеют 2 поляstudID
а такжеstudName
, Я хочу загрузить данные изstudent
стол вstuLoad
Таблица.
Если данные уже существуют вstudLoad
таблица, то она должна быть обновлена, иначе она должна быть вставлена. Вот мой код для этого:
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;
Это не работает. строки в таблице studLoad не обновляются. Как мне это решить? В SQL-сервере мы используемIF EXISTS(select...from stuLoad..)
проверить, существует ли запись в таблице, есть ли способ сделать то же самое в Oracle? если да, то, пожалуйста, дайте мне знать то же самое.