有时候需要大面积的修改数据,这个时候用循环语句效率不高。而临时表又不能满足点对点修改的时候,游标似一种不错的选择(PS:好像游标也是为循环而生的吧)
现在有两张表 t1(ryid number,name nvarchar2(50),salary number,paydate date……)用来存员工每月的工资
t2(ryid number,paySalary number)每个月发的工资数目 现将t2中的paySalary添加到t1中
可以直接用update来实现;
现用oracle的for游标来实现
1 --定义游标 2 declare 3 cursor id--游标名称 4 is 5 select ryid,salary from t2; --把需要的内容插入游标 6 r_id id%rowtype;--有点像ds 中的rows 7 8 begin 9 for r_id in id loop 10 update t1 set t1.salary = r_id.paySalary --内容 11 where t1.ryid=r_id.ryid; 12 end loop; 13 end;
其他类型的游标也是差不多。
内容部分不能用select语句输出内容。
至此作为一个备忘
http://www.cnblogs.com/sc-xx/archive/2011/12/03/2275084.html参考地址