Database PLS 00306错误PL/SQL
我使用SQL*PLUS运行此代码Database PLS 00306错误PL/SQL,database,plsql,Database,Plsql,我使用SQL*PLUS运行此代码 DECLARE v_sal NUMBER:= 3000; v_valid BOOLEAN; BEGIN v_valid := v_sal BETWEEN 1000 AND 5000; DBMS_OUTPUT.PUT_LINE('Value of v_valid is ' || v_valid); END; / 我读到我可以用这个表达式来分配布尔值。 为什么我会在第6行出现这个错误 我认为问题不在表达式之间。这是DBMS_输出行。它不能处理布尔值。以下代码起作用
DECLARE
v_sal NUMBER:= 3000;
v_valid BOOLEAN;
BEGIN
v_valid := v_sal BETWEEN 1000 AND 5000;
DBMS_OUTPUT.PUT_LINE('Value of v_valid is ' || v_valid);
END;
/
我读到我可以用这个表达式来分配布尔值。
为什么我会在第6行出现这个错误 我认为问题不在表达式之间。这是DBMS_输出行。它不能处理布尔值。以下代码起作用:
set serveroutput on
DECLARE
v_sal NUMBER:= 3000;
v_valid BOOLEAN;
BEGIN
v_valid := v_sal BETWEEN 1000 AND 5000;
dbms_output.put_line(CASE WHEN v_valid THEN 'true' ELSE 'false' END);
END;
/
最好在
CASE
表达式中包含null
检查条件,因为如果v_sal
恰好是null
,v_valid
也是null
,CASE
表达式将给出false
,这是错误的答案。