存储过程,函数,游标

存储过程,函数,游标

ID:14839402

大小:45.00 KB

页数:16页

时间:2018-07-30

存储过程,函数,游标_第1页
存储过程,函数,游标_第2页
存储过程,函数,游标_第3页
存储过程,函数,游标_第4页
存储过程,函数,游标_第5页
资源描述:

《存储过程,函数,游标》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、存储过程,函数,游标一、游标游标是一种PL/SQL控制结构,可以对SQL语句的处理进行显式控制,便于对表的数据逐条进行处理。ps.当表中数据量大的时候,不建议使用游标(效率不高,耗费资源),但是它能逐条取数据方法灵活。游标是记录的指针,利用游标对活动集的更新或删除会反馈到表的记录上。游标属性:%FOUND、%NOTFOUND、%ROWCOUNT、%ISOPEN1、显式游标显式游标是由用户显式声明的游标。根据在游标中定义的查询,查询返回的行集可以包含零或多行,这些行称为活动集。游标将指向活动集中的当

2、前行。显式游标操纵过程:声明、打开、从游标中获取记录、关闭。SETSERVEROUTPUTON;DECLARECURSORcurISSELECT*FROMbooks;myrecordbooks%ROWTYPE;BEGINOPENcur;LOOPFETCHcurINTObooks;EXITWHENcur%NOTFOUND;DBMS_OUTPUT.PUT_LINE(books.id

3、

4、''

5、

6、books.name);ENDLOOP;CLOSEcur;END;1.1、带参数的显式游标:参数不需指定长度或

7、者精度。1.2、FOR循环游标:采用遍历方式,自动打开、提取和关闭游标。(能否利用%ROWCOUNT获得游标提取的行数?)DECLARE/*定义带参数游标*/CURSORcur_para(idvarchar2)ISSELECTbooks_nameFROMbooksWHEREbooks_id=id;BGEIN/*调用带参数游标,并以FOR循环方式处理*/FORcurINcur_para('0001')LOOPDBMS_OUTPUT.PUT_LINE(cur.books_id

8、

9、''

10、

11、cur.boo

12、ks_id);ENDLOOP;END;1.3、使用显示游标删除或更新记录定义时:需使用SELECT...FORUPDATE语句表示事物的锁定;执行时:需使用WHERECURRENTOFcurXXX子句指定游标的当前行。/*定义部分*/CURSORcurISSELECTnameFROMdeptmentFORUPDATE;..../*执行部分*/UPDATEdeptmentSETname=name

13、

14、'_tt'WHERECURRENTOFcur;2、隐式游标不需声明,打开和关闭的游标。PL/SQL为所

15、有的SQL数据操纵语句隐式声明游标,它是不能直接命名和控制。BEGINFROMcurIN(SELECTnameFROMdeptment)LOOPDBMS_OUTPUT.PUT_LINE(cur.books_id

16、

17、''

18、

19、cur.books_id);ENDLOOP;END;ps.匿名块:每次执行时都需要被编译,并且无法存储到数据库中,别的PL/SQL块也无法调用它。命名块:存储在数据库中,属于数据库对象。排错:SHOWERRORSPROCEDURE/FUNCTION/PACKAGEobj_name

20、;二、存储过程CREATEORREPLACEPROCEDUREtest(valueINvarchar2,value2OUTNUMBER)/*参数,不需指定长度或精度*/IS/*局部变量,省略DECLARE关键字,需有长度*/identityNUMBER;BEGINSELECTITEMRATEINTOidentityFROMitemFileWHEREitemcode=value;IFidentity<200THENvalue2:=200;ELSEvalue2:=50;ENDIF;END;●匿名块执行

21、过程DECLAREtvalue2NUMBER;BEGINtest('i202',tvalue2);DBMS_OUTPUT.PUT_LINE('value2的值为:'

22、

23、TO_CHAR(value2));END;●单独执行EXECUTEmyproc('0001');三、函数函数的主要特性是它必须返回一个值。创建函数时通过RETURN子句指定函数返回值的数据类型。函数的一些限制:●函数只能带有IN参数,不能带有INOUT或OUT参数。●形式参数必须只使用数据库类型,不能使用PL/SQL类型。●函数的返

24、回类型必须是数据库类型。CREATEORREPLACEFUNCTIONitem_price_rage(priceNUMBER)/*参数、指定返回类型*/RETURNvarchar2AS/*定义局部变量*/min_priceNUMBER;max_priceNUMBER;BEGINSELECTMAX(ITEMRATE),MIN(ITEMRATE)INTOmax_price,min_priceFROMitemfile;IFprice>=min_priceANDprice<=max_pri

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。