2014-06-28 10 views
-1

我试图在Oracle上执行以下代码;打算打印布尔值。它不是压缩。任何帮助?Oracle中的PL/SQL布尔数据类型

DECLARE 
v_bool BOOLEAN; 
BEGIN 
IF (v_bool IS NULL) THEN 
DBMS_OUTPUT.PUT_LINE('By default the value is NULL'); 
ELSEIF (v_bool = TRUE) THEN 
DBMS_OUTPUT.PUT_LINE('By default the value is TRUE'); 
ELSE 
DBMS_OUTPUT.PUT_LINE('By default the value is FALSE'); 
END IF; 
END; 
+1

对不起,你面临什么编译错误?我一见钟情就没有看到这个问题! –

+0

“这不是压缩。”:你的意思是*编译*或*抱怨*? – Codo

+0

除了像Codo说的那样替换'elseif',你不必显式地将布尔值与true或false进行比较,尽管这是完全有效的。你可以将它简化为'elsif v_bool then',并且对false的测试可以写成'elsif not v_bool then'。 –

回答

5

您的代码不能编译。相反的:

ELSEIF ... 

它应该是:

ELSIF ... 

一旦你得到的是正确的,输出将是:

By default the value is NULL 

(所有变量都初始化为PL/SQL NULL )