我使用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行得到这个错误?
答案 0 :(得分:2)
我不认为问题是BETWEEN表达式。它是DBMS_OUTPUT行。它无法处理BOOLEAN值。以下代码有效:
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;
/