n 定义REF CURSOR类型,然后声明该变量的变量
n 声明SYS_REFCURSOR的变量
光标变量通常被称为引用光标。
|
TYPE type_name IS REF CURSOR [ RETURN return_type ] |
如果指定了return_type,则定义的引用光标变量和声明的该类型的变量就是强类型的,否则是弱类型的。SYS_REFCURSOR类型和它的变量是弱类型的。
对于强类型的光标变量,只可以把返回指定类型的查询和它相关联;
对于弱类型的光标变量,可以与任何查询关联。
弱类型的光标变量比强类型的光标变量更容易产生错误,但它更灵活。弱类型的引用光标可以互相转换,也可以与SYS_REFCURSOR互相转换。
可以将一个弱类型的光标变量赋值给另一个弱类型的光标变量;只有当2个强类型光标变量具有相同的类型(不仅仅是返回类型相同),才可以进行赋值。
注意:对于只包含了partition by any子句的表函数光标变量参数(没有包含范围或哈希分区), 你可以分区该弱光标变量参数(problem)
|
DECLARE TYPE empcurtyp IS REF CURSOR RETURN employees%ROWTYPE; -- 强类型 TYPE genericcurtyp IS REF CURSOR; -- 弱类型
cursor1 empcurtyp; -- 强类型光标变量 cursor2 genericcurtyp; -- 弱类型光标变量 my_cursor SYS_REFCURSOR; -- 弱类型光标变量
TYPE deptcurtyp IS REF CURSOR RETURN departments%ROWTYPE; -- 强类型 dept_cv deptcurtyp; -- 强类型光标变量 BEGIN NULL; END; |
|
DECLARE TYPE EmpRecTyp IS RECORD ( employee_id NUMBER, last_name VARCHAR2(25), salary NUMBER(8,2));
--返回用户自定义类型的光标变量 TYPE EmpCurTyp IS REF CURSOR RETURN EmpRecTyp; emp_cv EmpCurTyp; BEGIN NULL; END; |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1122767/ ,如需转载,请注明出处,否则将追究法律责任。