文档详情

oracle 1章基础空间用户权限建表游标.pptx

发布:2025-04-22约2.74千字共14页下载文档
文本预览下载声明

游标管理

目标掌握游标管理技巧

游标简介2-1Oracle服务器执行PL/SQL程序内存单元保存到游标中一次处理一行检索行提取行

游标简介2-2逐行处理查询结果,以编程的方式访问数据游标的类型:隐式游标显式游标在PL/SQL程序中执行DMLSQL语句时自动创建隐式游标。显式游标用于处理返回多行的查询。游标类型

隐式游标4-1在PL/SQL中使用DML语句时自动创建隐式游标隐式游标自动声明、打开和关闭,其名为SQL通过检查隐式游标的属性可以获得最近执行的DML语句的信息隐式游标的属性有:%FOUND–SQL语句影响了一行或多行时为TRUE%NOTFOUND–SQL语句没有影响任何行时为TRUE%ROWCOUNT–SQL语句影响的行数%ISOPEN-游标是否打开,始终为FALSE

隐式游标4-2SQLSETSERVEROUTPUTONSQLBEGIN UPDATEtoysSETtoyprice=270 WHEREtoyid=P005; IFSQL%FOUNDTHEN DBMS_OUTPUT.PUT_LINE(‘表已更新); ENDIF;END; /只有在DML语句影响一行或多行时,才返回True

隐式游标4-3SQLSETSERVEROUTPUTONSQLDECLARE v_TOYIDTOYS.ID%type:=TOYID; v_TOYNAMETOYS.NAME%Type:=TOYNAME;BEGIN UPDATETOYSSETNAME=v_TOYNAME WHEREtoyid=v_TOYID; IFSQL%NOTFOUNDTHEN DBMS_OUTPUT.PUT_LINE(编号未找到。); ELSE DBMS_OUTPUT.PUT_LINE(‘表已更新); ENDIF;END;/如果DML语句不影响任何行,则返回True

隐式游标4-4SQLSETSERVEROUTPUTONSQLBEGIN UPDATEvendor_master SETvenname=RobMathew WHEREvencode=V004; DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT);END;/返回DML语句影响的行数

显式游标2-1显式游标在PL/SQL块的声明部分定义查询,该查询可以返回多行显式游标的操作过程:数据库打开游标30George344Roger245James1Stud_mrksStud_namestud_no提取行变量关闭游标

显式游标2-2SQLSETSERVEROUTPUTONSQLDECLAREmy_toy_pricetoys.toyprice%TYPE; CURSORtoy_curIS SELECTtoypriceFROMtoys WHEREtoyprice250;BEGIN OPENtoy_cur; LOOP FETCHtoy_curINTOmy_toy_price; EXITWHENtoy_cur%NOTFOUND; DBMS_OUTPUT.PUT_LINE(TOYPRICE=:玩具单价=:||my_toy_price); ENDLOOP; CLOSEtoy_cur;END;声明游标打开游标提取行关闭游标

带参数的显式游标声明显式游标时可以带参数以提高灵活性声明带参数的显式游标的语法如下: CURSORcursor_name(param_nameparam_type)ISselect_statement;SQLSETSERVEROUTPUTONSQLDECLARE desigVARCHAR2(20); emp_codeVARCHAR2(5); empnmVARCHAR2(20); CURSORemp_cur(desigVARCHAR2)IS SELECTempno,enameFROMemployee WHEREdesignation=desig;BEGIN desig:=desig; OPENemp_cur(desig); LOOP FETCHemp_curINTOemp_code,empnm; EXITWHENemp

显示全部
相似文档