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

DEFINEは SQL*Plus コマンドであるため、SQL*Plus で機能します。

「データベースのホームページ」を参照する場合、SQL および PL/SQL コードを実行できる Oracle Apex の 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 に答える