1

我想在属于数据库主页的 SQL 窗口中编译这个 PL/SQL 程序:

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 下工作,它可能是什么问题?

4

1 回答 1

1

它在 SQL*Plus 中工作,因为DEFINE它是一个 SQL*Plus 命令。

当您提到“数据库主页”时,我相信您指的是 Oracle Apex 的 SQL 命令窗口,它可以运行 SQL 和 PL/SQL 代码,但不能运行 SQL*Plus 命令。

您可以改为执行此操作 - Apex 将提示您输入绑定变量(如果有):

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;
于 2012-10-05T03:44:53.577 回答