電子書籍の厳選無料作品が豊富!

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 のように配列みたいな形でも良いです。

よろしくお願い致します。

A 回答 (3件)

    • good
    • 0
この回答へのお礼

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

お礼日時:2013/04/07 19:33

プロシージャの実装方法ですよね?



こちらの例のように、配列で受け取って表関数を使用するようにしてはいかがでしょうか。
http://www.shift-the-oracle.com/plsql/table-func …
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/04/07 19:34

文字列で生成しているなら、SQL文をそのように出来上がるように加工すればいいのではないでしょうか。



プレースホルダ―を利用している方法では、SQL文を生成する際に、パラメータ数を考慮してSQL文を生成し、
その数分、Parameters.Add()すればいいと思います。

この回答への補足

SQLをvbで作る場合は、加工すればよいですが、
出来上がっているプロシージャーを呼ぶ形です。

引数に"1,2,3" と与えると、 「1,2,3」と言う1つの物に一致するかどうかで判断されています。

そのため、うまく行ってません。

補足日時:2013/03/06 14:37
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!