- - PR -
ODP.NETで配列を使った問合せ(VB.NETまたはC#)
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-02-23 16:38
お世話になります。
配列バインド機能でストアドプロシージャを複数実行する方法はOTNにも掲載されていましたが、SELECT文も同様に複数回実行できないものでしょうか? cmd.CommandText = "select dname WHERE deptno = :1" deptnoにバインド配列を渡して、結果(OracleDataReaderで取得可能?)も配列にセットするイメージなんですが・・・ 書き方がイマイチわかりません。 当然ですがdeptno配列分問合せを発行したくありません。他のアイディア等ありましたら教えて下さい。 | ||||||||
|
投稿日時: 2004-02-23 17:03
ストアドプロシージャで配列を渡すことができるのは、ストアドプロシージャが配列を受け取ることができるからです。WHERE句の条件には配列を渡せませんので、同じようにはできません。
1度に複数の条件を取ってきたいなら、その条件を並列に並べます。 WHERE DEPTNO=1 OR DEPTNO=2 OR ... または WHERE DEPTNO IN (1, 2, 3, ...) | ||||||||
|
投稿日時: 2004-02-23 17:34
早速のご返信ありがとうございます。
なるほど。ということはSELECT文をプロシージャに組み込んで、too_many_rowsに気をつけて選択リストの値を戻すようにしてもできそうですね。
なるほど。このケースだと条件を適当な大きさに切って発行する必要がありますね。 今回はプロシージャにした方が簡単なようなので上のやつで試してみます。 ありがとうございました。 |
1