2012-10-05 73 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