Database 编译包体时出现PLS-00324错误
当我编译下面的代码时,我得到了PL-00324错误。此错误表示变量V_CD_ESTADO无法接收来自游标C_VERIFICA的返回,因为它不是游标。奇怪,不是吗?我做了很多研究,但a找不到对我有帮助的东西。。。所以,如果有人帮助我,我将非常感激 PLS-00324光标属性不能应用于非光标“字符串”Database 编译包体时出现PLS-00324错误,database,oracle,package,Database,Oracle,Package,当我编译下面的代码时,我得到了PL-00324错误。此错误表示变量V_CD_ESTADO无法接收来自游标C_VERIFICA的返回,因为它不是游标。奇怪,不是吗?我做了很多研究,但a找不到对我有帮助的东西。。。所以,如果有人帮助我,我将非常感激 PLS-00324光标属性不能应用于非光标“字符串” CREATE OR REPLACE PACKAGE BODY PCK_TB_ESTADO IS FUNCTION FNC_VALIDA_ESTADO (P_CD_ESTADO IN TB_FU
CREATE OR REPLACE PACKAGE BODY PCK_TB_ESTADO
IS
FUNCTION FNC_VALIDA_ESTADO
(P_CD_ESTADO IN TB_FUNCIONARIO.CD_ESTADO%TYPE)
RETURN BOOLEAN
IS
CURSOR C_VERIFICA
IS
SELECT CD_ESTADO
FROM TB_FUNCIONARIO
WHERE CD_ESTADO = P_CD_ESTADO;
V_CD_ESTADO TB_FUNCIONARIO.CD_ESTADO%TYPE;
BEGIN
OPEN C_VERIFICA;
FETCH C_VERIFICA INTO V_CD_ESTADO;
IF V_CD_ESTADO%NOTFOUND THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
CLOSE C_VERIFICA;
END;
END;
您想检查未找到
C\u VERIFICA%NOTFOUND
的光标状态,而不是变量V\u CD\u ESTADO
光标属性%found
,%NOTFOUND
,%ROWS%
,%是否处于打开状态等。仅适用于光标
。也就是说,定义为游标游标的游标\u 1是…
在这种情况下,游标游标\u 1
可以具有这些游标属性。例如cursor\u 1%处于打开状态
,cursor\u 1%未找到
等等。在代码中,您显然将游标属性与非游标元素相关联,即V_CD_ESTADO
,它只是TB_functionario.CD_ESTADO
的类型的一个变量
你打算做的是
IF C_VERIFICA%NOTFOUND THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
因为这里的光标是C_VERIFICA