我正在使用 oracle 11g,但我无法理解我的问题出在哪里。我做了更困难的事情,但在过去的 5 小时里我在这个简单的事情上失败了:
这是函数体
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;
这是规格:
FUNCTION legal_user(
level_existance number
,types_with_impel number)
RETURN BOOLEAN;
逻辑与等价于
A*B>0?true:false;
我收到的错误消息是
ORA-06552: PL/SQL: 语句被忽略 ORA-06553: PLS-382: 表达式的类型错误 06552. 00000 - "PL/SQL: %s" *原因:
*操作:错误在行:1 列:7
这就是我在 IDE 中运行它的方式
SELECT compt_tree_profile_q.legal_user(1,1)
FROM dual