バインド変数について


bind  2006-03-30 18:23:20  No: 130854

.NET,ORACLE9i で開発しております。
そこで、バインド変数を用いてSELECT文
を発行しようと思っているのですが、
実装方法が良く分かりません。
テーブル名もバインド変数にできるのですか?
アドバイスをお願い致します。


魔界の仮面弁士  2006-03-30 18:49:14  No: 130855

多くのデータベース製品では、テーブル名をパラメータ化できません。
残念ながら、Oracleも然りです。

# もし、パラメータ化できたとしても、テーブル名が事前に分からないため、
# オプティマイザが SQL を最適化できず、毎回、新規のSQLを実行されるのと、
# コスト的には変わらなくなってしまうからだと聞いた事があります。

強いてあげれば、バインド変数を元にして、Oracle 側で動的に SQL 文を
作成し、それを DBMS_SQL.PARSE() で実行させるという方法がありますが、
そのような方法を使うぐらいなら、SQL を VB側で生成した方がわかりやすいでしょう。


bind  2006-03-30 18:59:10  No: 130856

早速のご回答誠にありがとうございます。
やはり簡単ではないのですね。

私自身あまり.net,oracle等の知識がないのですが、
現在"Oracle.DataAccess.Client.OracleConnection"の
インスタンスを生成してopenしてトランザクション宣言まで
しかできていません。
ここから、SQLを生成してパラメータを追加する等の作業は
どのように致したらよろしいのでしょうか。
なお、ループしながら1000回程SQL発行したいのですが。

申し訳ありませんが、今一度アドバイスを頂けないでしょうか。
お願い致します。


ひろ  2006-03-31 21:26:48  No: 130857

とりあえず otn で資料を手に入れましょう
 http://otn.oracle.co.jp


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加