2012-10-05 114 views
1

我想在屬於數據庫主頁SQL窗口編譯這個PL/SQL程序:Oracle 10g和定義指令

DEFINE p_annual_sal=60000 
DECLARE 
    v_sal NUMBER(9,2):=&p_annual_sal; 
BEGIN 
    v_sal:=v_sal/12; 
    DBMS_OUTPUT.PUT_LINE('The monthly salary is '|| TO_CHAR(v_sal)); 
END; 

當我擊跑我得到了以下信息:

ORA-00900:無效的SQL語句

即使它工作在命令行下的SQL * Plus,它可能是這個問題?

回答

1

它適用於SQL * Plus,因爲DEFINE是SQL * Plus命令。

當您引用「數據庫主頁」時,我相信您指的是Oracle Apex的SQL命令窗口,它可以運行SQL和PL/SQL代碼,但不能運行SQL * Plus命令。

你可以做到這一點,而不是 - 頂點會提示你輸入綁定變量,如果有的話:

DECLARE 
    v_sal NUMBER(9,2):= :p_annual_sal; 
BEGIN 
    v_sal:=v_sal/12; 
    dbms_output.put_line('The monthly salary is '|| TO_CHAR(v_sal)); 
END; 
+0

感謝您的幫助,現在很清楚 – Layla