oracle使用游标批量更新数据有则更新无则插入

–游标法
–student 有 sno sname ssex
–student_test 有 sno name sex
–SQL%NOTFOUND 是一个布尔值。与最近的sql语句(update,insert,delete,select)发生交互,当最近的一条sql语句没有涉及任何行的时候,则返回true。否则返回false。这样的语句在实际应用中,是非常有用的。例如要update一行数据时,如果没有找到,就可以作相应操作。

当update sno为5的这行记录,如果update影响条数为0,则插入一条数据。
–需求把student_test 表数据更新到student表

declare
cursor cur_pricetable is select * from student_test;–定义游标
begin
for v_pricetable in cur_pricetable
loop
update student set sname=v_pricetable.name,ssex=v_pricetable.sex where sno = v_pricetable.sno;
if sql%notfound then
insert into student(sno,sname,ssex) VALUES (v_pricetable.sno,v_pricetable.name,v_pricetable.sex);
end if;
end loop;
end ;

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值