1.6.1 使用光标的基本方法
| 含量 | 属性 |
| %FOUND | 布尔型属性,当最近一次该记录时成功返回,则值为TRUE |
| %NOTFOUND | 布尔型属性,它的值总与%FOUND属性的值相反 |
| %ISOPEN | 布尔型属性,当光标是打开时返回TRUE |
| %ROWCOUNT | 数字型属性,返回已从光标中读取的记录数 |
1.6.2 使用光标FOR循环
| DECLARE CURSOR C1 IS SELECT VIEW_NAME FROM ALL_VIEWS WHERE ROWNUM<=10 ORDER BY VIEW_NAME; BEGIN FOR I IN C1 LOOP DBMS_OUTPUT.PUT_LINE(I.VIEW_NAME); END LOOP; END LOOP; EXCEPTION WHEN OTHERS THEN NULL; END; |
1.6.3 带参数的光标
1.7 创建代表数据库记录和列的变量
| 变量名 基表名.列名%TYPE DECLARE D_NO DEPT.DEPT_NO%TYPE; D_NAME DEPT.DEPT_NAME%TYPE; BEGIN SELECT DEPT_NO,DEPT_NAME INTO D_NO,D_NAME FROM DEPT; DBMS_OUTPUT.PUT_LINE(TO_CHAR(D_NO)); EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END; 变量名 基表名%ROWTYPE DECLARE D VEQU12%ROWTYPE; BEGIN SELECT ASSET12ID,ASSET12NAME INTO D.ASSET12ID, D.ASSET12NAME FROM VEQU12; DBMS_OUTPUT.PUT_LINE(D.ASSET12ID); EXCEPTION WHEN NO_DATA_FOUND THEN NULL; WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE('TOO_MANY_ROWS'); END; |
说明:
当用户要创建一个变量来表示一个基表列或者要创建多个变量来代表一整条记录时,可以实际使用%TYPE属性和%ROWTYPE属性,使用%TYPE属性和%ROWTYPE属性可以保证当基表的结构或者其中某列的数据类型改变了时,用户的PL/SQL代码仍可正常工作。
1.8 怎样用PL/SQL表实现数组功能
PL/SQL表与其他过程化语言(如C语言)的一维数组类似。实现PL/SQL表需要创建一个数据类型并另外进行变量说明。
评论加载中…
![]() |