私は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 ServerではIF EXISTS(select...from stuLoad..)
、レコードがテーブルに存在するかどうかを確認するために使用しますが、Oracleで同じことを行う方法はありますか?もしそうなら、私に同じことを知らせてください。