Oracle 10g Express Editionを使用しています。 db開発者向けの素晴らしいUIがあります。しかし、ストアドプロシージャの実行中にいくつかの問題に直面しています。
手順:
create or replace procedure temp_proc is
begin
DBMS_OUTPUT.PUT_LINE('Test');
end
正常に作成されます。しかし、私が実行するとき:
execute temp_proc;
ORA-00900:無効なSQLステートメント
ここで必要なヘルプ
Execute
はsql * plus構文です。begin.. endで呼び出しを次のようにラップしてみてください。
begin
temp_proc;
end;
(Jeffreyは、これはAPEXでは機能しないと言っていますが、SQLDeveloperでこれを実行しようとしているのです。そこで「実行」メニューを試してください。)
Oracle 10g Express Editionには、Oracle Application Express(Apex)が組み込まれています。これは、SQL * Plus構文をサポートしない[SQLコマンド]ウィンドウで実行しています。
(あなたが発見したように)BEGIN ... END構文はApexで機能するため、これは重要ではありません。
「is」と「as」は両方とも有効な構文です。出力は、デフォルトではdisabledです。出力も有効にする手順を試してください...
create or replace procedure temp_proc is
begin
DBMS_OUTPUT.ENABLE(1000000);
DBMS_OUTPUT.PUT_LINE('Test');
end;
...そしてPLSQLブロックで呼び出します...
begin
temp_proc;
end;
... SQLは非手続き型です。