私はこれがプロシージャを作成して実行する最初の試みです。まず、簡単なテーブルを作成します。テーブルのDBスキームはここにあります:
テーブル名:Ziaci
列:
ストアドプロシージャはテーブルにデータを挿入するだけです。次のSQLコマンドを使用してストアドプロシージャを作成しました。
create procedure ziaci_proc(surname_in in varchar2,
firstname_in in varchar2, triedaid_in in number)
is
begin
insert into ziaci (surname, firstname,triedaid) values (surname_in,firstname_in,triedaid_in);
end;
そして、私はこの手順を次のように呼んでみます:
execute ziaci_proc('X','Y',1)
このエラーが発生します:
ORA-00900無効なSQL文
PL/SQL Developer IDEは、Wordの実行に赤い下線が引かれています。
私はこの手順をテストし、それはうまくいきます。
この手順は、次のSQLコマンドでのみ実行できます。
begin
ziaci_proc('A','B',2);
end;
何が悪いのか、助けてくれてありがとう。
上記のようにexecute
を使用してストアドプロシージャを呼び出すことは、SQL * Plusに固有です。実際、SQL * Plusはexecute some_proc()
をBEGIN some_proc(); END;
に変換します。存在しないプロシージャを呼び出そうとすると、これを自分で確認できます。
SQL> some_proc() BEGIN some_proc();を実行します。 END; * 1行目のエラー: ORA-06550:1行目、7列目: PLS-00201:識別子 'SOME_PROC '宣言する必要があります ORA-06550:行1、列7: PL/SQL:ステートメントは無視されます
「SQLウィンドウ」でコマンドを書いていると思います。この行を正常に実行するには、「コマンドウィンドウ」を使用する必要があります。
execute ziaci_proc('X','Y',1);