• ベストアンサー

プロシージャーに動的にパラメータを与えたい

VB.netからプロシージャーを呼び出してます。 SQLで、inの中などで、動的にパラメータを与えたいです。 Select * from TableX where koumoku1 in (1,2,3,5,10) 例えば上の1,2,3,5,10 をパラメータとして外部から与えたいのですが、 プロシージャー側の実装としては、どのような方法があるのでしょうか? パラメータの与え方は、 x = "1,2,3,5,10" のように1つの文字列でも良いし x[0]=1,x[1]=2,x[2]=3,x[3]=5,x[4]=10 のように配列みたいな形でも良いです。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2
evaan
質問者

お礼

返事が遅くなりました。 無事解決しました。 ありがとうございました。

その他の回答 (2)

  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.3

プロシージャの実装方法ですよね? こちらの例のように、配列で受け取って表関数を使用するようにしてはいかがでしょうか。 http://www.shift-the-oracle.com/plsql/table-function/collection-unnesting.html

evaan
質問者

お礼

ご回答、どうもありがとうございました。

回答No.1

文字列で生成しているなら、SQL文をそのように出来上がるように加工すればいいのではないでしょうか。 プレースホルダ―を利用している方法では、SQL文を生成する際に、パラメータ数を考慮してSQL文を生成し、 その数分、Parameters.Add()すればいいと思います。

evaan
質問者

補足

SQLをvbで作る場合は、加工すればよいですが、 出来上がっているプロシージャーを呼ぶ形です。 引数に"1,2,3" と与えると、 「1,2,3」と言う1つの物に一致するかどうかで判断されています。 そのため、うまく行ってません。

関連するQ&A