- PR -

ODPでストアドの引数にテーブル型(配列)のデータを渡す方法について

1
投稿者投稿内容
aki
会議室デビュー日: 2003/12/19
投稿数: 10
投稿日時: 2005-10-27 14:29
いつもお世話になっております。
どうしてもうまくいかないので質問させていただきます。

ODPを使って、Oracleのストアドプロシージャを実行する際に
複数行の引数を渡したいと考えております。

REF CURSORを使って戻り値として複数行を取得することは
できるのですが、逆に複数行のデータを引数として渡そうとすると
ExecuteNonQuery()で「Invalid parameter binding」というエラーが発生してしまいます。


Dim Parm As New Oracle.DataAccess.Client.OracleParameter
Parm = Command.Parameters.Add(CStr(.Name), OracleDbType.RefCursor)
Parm.Value = 渡したい引数

としてパラメータを設定しているのですが、引数の型をDataTableやDataView等に
しても同じエラー発生し、実行できません。

Datatableのような型の引数を渡すことが出来ればいいのですが不可能であれば一次元配列のようなものでも
いいと考えております。

http://www.atmarkit.co.jp/fdb/rensai/odpdotnet01/odpdotnet04.html
↑上記サイトを参考にこのような方法も考えたのですが、画面上、ヘッダー部と明細部があるもののデータを
1回のPLSQLで実行したいと思い、ヘッダー部用の通常の引数と明細部用の配列の引数を同時に
渡せるような書き方が出来ないものかと悩んでおります。

不可能なことであればそれが分かれば諦めもつくので何かご存知の方がいらっしゃいましたら
ご教授くださいますようよろしくお願いいたします。


開発環境:WinXP Pro SP2
     VS.NET 2003 &ODP9.2.0.4.0
     Oracle9i
1

スキルアップ/キャリアアップ(JOB@IT)