0

たとえば、このプロシージャを作成します

Create procedure MyProc (name varchar2:='', married varchar2:='', surname varchar2:='') IS
...
...
...
END;

そして今、私はいつかこのように使いたい

MyProc (name=>'George', married=>'NO');

そしていつか私はこのようにそれを使う必要があります

MyProc (name=>'Warren', surname=>'Palas');

いつかこんな風に使う必要が…

MyProc (name=>'Joey', married=>'YES', surname=>'BigJoey');

どうすればこのステータスを取得できますか? いつもアドバイスありがとうございます

4

1 に答える 1

0

次のように手順を指定し、既に行ったように「=>」メソッドで呼び出すことで、これを実現できます。

PROCEDURE MyProc (name IN yourtable.name%type, 
married IN yourtable.married%type := NULL,
surname IN yourtable.surname%type := NULL)

仕様のパラメーターをデフォルトにすることにより、パラメーターは「オプションのパラメーター」になります。デフォルトのないパラメーターは、必須パラメーターと呼ばれます。

パッケージ内でプロシージャを指定してオーバーロードすることもできます。プロシージャのオーバーロードとは、同じパッケージ内に同じ名前の複数のプロシージャを作成することを意味します。プロシージャがどのように呼び出されるかによって、どのプロシージャが実際に実行されるかが決まります。

どちらに進むべきかの決定は、各タイプのコールに必要な処理の違いの程度によって異なります。一般に、オーバーロードは、コードの抽象化、構造化、およびメンテナンスの目的に適しています。

于 2012-08-08T14:34:16.813 に答える