有这个代码:
CURSOR emp_cur RETURN employees%ROWTYPE
IS
SELECT * FROM employees
WHERE department_id = 10;
你能解释一下为什么这里需要这个子句RETURN吗?
然后我是否需要将光标传递给变量,例如:ins_c emp_cur%ROWTYPE;?
有这个代码:
CURSOR emp_cur RETURN employees%ROWTYPE
IS
SELECT * FROM employees
WHERE department_id = 10;
你能解释一下为什么这里需要这个子句RETURN吗?
然后我是否需要将光标传递给变量,例如:ins_c emp_cur%ROWTYPE;?
不,不一定,有可能是另一种类型的变量,但是字段的数量和它们的类型(至少是兼容的类型)必须与游标结果集相匹配。
仅在声明游标时才需要 RETURN 子句。定义游标时,该子句是可选的,即可选的。
显式游标始终是“严格的”,也就是说,游标的结果类型必须在编译时知道,要么来自
RETURN声明中的子句,要么来自定义游标时的静态查询。因此,在定义游标时,可以省略 RETURN 子句,或者它必须与声明匹配: