2011-05-30 74 views
9

プロシージャPL/SQLで可変長の引数を使用できますか?PL/SQLストアド・プロシージャの可変数の引数

私の場合、プロシージャはフォームのサブミットボタンによって呼び出され、フォームは入力の数が可変です。

+0

imoは、デフォルト値を使用するか、ベースプロシージャを呼び出すいくつかのオーバーロードを作成します。他のすべてのオーバーロードされたprocsによって呼び出されるベースprocにあなたの共通処理をすべて入れてください。オーバーロードされたprocsには、その呼び出しに固有の追加の処理があります。 – tbone

答えて

9

myproc(999); 

するか、このようなmod_plsqlを使用していますか?

もしそうなら、あなたは約flexible parameter passingを読んでください。つまり、プロシージャ名の前に感嘆符を付け、name_arrayとvalue_arrayでプロシージャを定義します。

+0

あなたが言ったように、柔軟なパラメータの受け渡しを探しましたが、これが見つかりました:http://asktom.oracle.com/pls/asktom/f?p=100:11:0:::P11_QUESTION_ID:19276873018565 問題解決済み!ありがとうございます – Moltes

+0

受け入れていただきありがとうございます。私の答えのテキストもまたリンクであり、あなた自身を再度検索することからあなたを救いました:-) –

3

並べ替えあなたは、このように呼び出すことができます

CREATE PROCEDURE myproc(p_value_a NUMBER DEFAULT 1, 
         p_value_b NUMBER DEFAULT 2) AS 
    ... 

:あなたは、プロシージャのパラメータのデフォルト値与えることができますあなたはそれを言及されますが、しません

myproc (p_value_b => 11); 
+1

私はむしろデフォルト値としてNULLを使用したいと思います。しかし、そうでなければ、答えは良いです。 – Codo

+0

私はデフォルト値について考えましたが、引数の数は非常に大きくなる可能性があります。 nullのデフォルト値を持つ100個の引数を持つプロシージャ、strange no? – Moltes

+0

私は100の引数を必要とする手順を見たことがありません。 100のフォーム変数がある場合は、データベースに送る前にサーバー側の処理を行う必要があります。 – eaolson

関連する問題