北京oracle培训_oracle培训哪家好_CUUG官方论坛_CUUG培训怎么样_CUUG官网

 找回密码
 立即注册
查看: 4842|回复: 0

[转载]游标的使用之变量定义

[复制链接]
发表于 2013-5-10 17:57:50 | 显示全部楼层 |阅读模式
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
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|CUUG认证培训 ( 京ICP备11008061号 )

GMT+8, 2024-9-8 12:30 , Processed in 0.017091 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表