Estoy usando Oracle 11g y no puedo entender cuál es mi problema. he hecho mucho más difícil cosas pero fallar en esta cosa simple para el último 5 horas:La función que devuelve booleano falla en "la expresión es del tipo incorrecto"
Este es el cuerpo de la función
FUNCTION legal_user(
level_existance number
,types_with_impel number)
RETURN BOOLEAN
IS
v_ret_val BOOLEAN;
BEGIN
v_ret_val := FALSE;
IF (level_existance*types_with_impel>0) then
v_ret_val := TRUE;
DBMS_OUTPUT.PUT_LINE('true');
else
DBMS_OUTPUT.PUT_LINE('false');
END IF;
return v_ret_val;
END legal_user;
Esta es la especificación:
FUNCTION legal_user(
level_existance number
,types_with_impel number)
RETURN BOOLEAN;
cuales Y lo hace lógico equivlant a
A*B>0?true:false;
El mensaje de error soy recibiendo es
ORA-06552: PL/SQL: Declaración ignorado ORA-06553: PLS-382: expresión es de tipo incorrecto 06552. 00000 - "PL/SQL:% s" * Causa:
* acción: error en la línea: 1 columna: 7
Esto es cómo lo ejecuto en mi IDE
SELECT compt_tree_profile_q.legal_user(1,1)
FROM dual
He compilado y utilizado la función y funcionó. ¿Puedes agregar un código de ejemplo sobre cómo lo estás usando? –
código agregado a q –