NARGSまたは "C" argcと同等のものはありません。
デフォルトのヌル値を使用している場合、デフォルト値と同じではない引数の数を手動で数えることができますが、デフォルト値をパラメータとして明示的に渡すかどうかは分かりません。
私は2つのソリューションを考えることができます。 1.ユーザーオーバーロードされた手順..すなわち
procedure a (p_1 number);
procedure a (p_1 number, p_2 number);
procedure a (p_1 number, p_2 number, p_3 number);
はその後、遺体にはあなたがである1で「知っている」でしょう。
オプション2.パス単一の引数として可変長配列/ PLSQLテーブルが、実際に引数を渡すことは問題になります。
create or replace package x
is
type an_arg is record (n number, v varchar2(2000), d date);
type args is table of an_arg;
procedure a(argv args);
end;
/
create or replace package body x
is
procedure a(argv args)
is
begin
dbms_output.put_line('i was passed '||argv.count||' arguments');
end;
end;
/
あなたはSP内の議論番号を知りたいのですか? –
はい、それは問題です。私は引数の数に応じていくつかのコードを実行するためにそれを知る必要があります。 Thanks –
次に、デフォルト値をnullに設定し、パラメータがnullかどうかを確認します。 – OldProgrammer