2014-06-28 11 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 )