複数の in および out パラメータを持つストアド プロシージャを実行しようとしています。この手順は、[他のユーザー] | [他のユーザー] に移動して、[接続] パネルでのみ表示できます。| | パッケージ | | |
を右クリックすると、メニュー項目は「Order Members By...」と「Create Unit Test」(灰色表示) になります。ユーザーがアクセスした場合、プロシージャを「実行」することはできないようです。
プロシージャを SQL ファイルとして実行できるように匿名ブロックを作成する方法の例を見つけようとしましたが、うまくいくものは見つかりませんでした。
SQL Developerからこの手順を実行する方法を知っている人はいますか? バージョン 2.1.1.64 を使用しています。
前もって感謝します!
編集1:
呼び出したいプロシージャには、次の署名があります。
user.package.procedure(
p_1 IN NUMBER,
p_2 IN NUMBER,
p_3 OUT VARCHAR2,
p_4 OUT VARCHAR2,
p_5 OUT VARCHAR2,
p_6 OUT NUMBER)
匿名ブロックを次のように書くと:
DECLARE
out1 VARCHAR2(100);
out2 VARCHAR2(100);
out3 VARCHAR2(100);
out4 NUMBER(100);
BEGIN
EXECUTE user.package.procedure (33,89, :out1, :out2, :out3, :out4);
END;
エラーが発生します:
Bind Varialbe "out1" is NOT DECLCARED
anonymous block completed
out* 変数を初期化してみました:
out1 VARCHAR2(100) := '';
しかし、同じエラーが発生します:
編集2:
アレックスの答えに基づいて、私はパラメーターの前からコロンを削除して、これを取得しようとしました:
Error starting at line 1 in command:
DECLARE
out1 VARCHAR2(100);
out2 VARCHAR2(100);
out3 VARCHAR2(100);
out4 NUMBER(100);
BEGIN
EXECUTE user.package.procedure (33,89, out1, out2, out3, out4);
END;
Error report:
ORA-06550: line 13, column 17:
PLS-00103: Encountered the symbol "USER" when expecting one of the following:
:= . ( @ % ; immediate
The symbol ":=" was substituted for "USER" to continue.
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action: