|
1. 原表:
select * from zuojia;
PNAME PSALARY P**
yk1 2000 男
yk2 2111 男
yk3 2200 男
yk4 2300 男
yk5 2400 男
yk6 2500 男
yk7 2600 男
yk8 2700 男
yk9 3000 男
yk10 3000 男
2. 使用游标进行判断,对大于2700的,都变成3000 :
--declare
--v_salary zuojia.psalary%TYPE;--使v_salary的类型与zuojia的psalary字段类型一样。其中变量有常见的number、char类型外,还有记录型、表型、引用型、lob型和用户自定义类型。
create or replace procedure pro_cursor_zuojia as
v_salary number;
v_name zuojia.pname%type;
cursor c_zuojia is
select pname,psalary
from zuojia;
begin
open c_zuojia;
loop
fetch c_zuojia into v_name,v_salary;
exit when c_zuojia%notfound;
if v_salary >2700 then
update zuojia set zuojia.psalary=3000
where zuojia.pname=v_name;
end if;
end loop;
close c_zuojia;
commit;
end;
set serveroutput on size 999;
exec pro_cursor_zuojia;
select * from zuojia;
3. 同作用sql:
update zuojia set psalary=3000 where psalary>2700;
4.使用plsql程序块,可以增加一些判断逻辑、流程控制语句,使程序更加灵活。
5.其中游标还有四个布尔属性,%FOUND,%NOTFOUND,%ISOPEN,ROWCOUNT。只能用于过程语句中,不能用于sql语句中。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|