我有 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 表中的行未更新。我该如何解决这个问题?IF EXISTS(select...from stuLoad..)
在我们用来检查表中是否存在记录的SQL Server中,有没有办法在 Oracle 中做同样的事情?如果是,那么请让我知道。