2014-04-11 78 views
0

我有一個例子在Oracle SQL的形式輸入數字加,這裏是我的代碼:無法檢查SQL plus中的輸入號碼?

DECLARE 
    WK_INPUT NUMBER := &NUMBER; 
BEGIN 
    IF WK_INPUT IS NOT NUMBER THEN 
     DBMS_OUTPUT.PUT_LINE('IS NOT NUMBER') 
    ELSE 
     DBMS_OUTPUT.PUT_LINE(WK_INPUT ||' IS NUMBER') 
    END IF; 
END; 

當我執行它的主要錯誤:

Encounter the symbol 'Number' when expecting the of the flow. 

我怎麼能檢查輸入的是數量還是不? 謝謝。

回答

3

Oracle中沒有「NUMBER」函數。但是,在這裏你並不需要它,因爲當你聲明變量WK_INPUT是NUMBER類型時,你只能給它分配一個數字,否則你會得到一個異常。你可以這樣寫:

DECLARE 
    wk_input NUMBER; 
BEGIN 
    wk_input := '&NUMBER'; 
    DBMS_OUTPUT.PUT_LINE(wk_input||' is a number'); 
EXCEPTION 
    WHEN VALUE_ERROR THEN 
    DBMS_OUTPUT.PUT_LINE('&NUMBER is not a number'); 
END; 
+0

正如上面你也可以做那麼TO_NUMBER捕獲異常 – kayakpim

+1

把'&NUMBER'腳本兩次意味着需要兩個輸入。重新運行腳本時使用'&& NUMBER'將意味着沒有提示。 – APC

+0

我剛剛在腳本中使用了DEFINE。根本沒有需要的輸入:-) – DCookie