Insider ADO接続においての配列を渡すストアドプ。DataTypeEnumにはadArrayという列挙値があるので、追加すれば良いのではと思います____________________________________↓型は指定した方が良いと思います。ADO接続においての配列を渡すストアドプロシージャの実行について

とあるExcelVBAがありOracleとoo4o接続でつながるプログラムがあります この度ADO接続に変更することとなり、現在作業をしておりますが
ADOで配列を渡す部分でつまずいております

AAAは配列でAAA(0)=& x27;1& x27;,AAA(1)=& x27;2& x27;,AAA(2) =& x27;3& x27; が入っています

プロシージャDataCheckはinAAAの配列を元に処理するものです
hoge =: inAAA(0);
hoge をテーブルに登録する他???

& x27;oo4o <こちらのプログラムではエラーがでません>
OraConnection Parameters AddTable "AAA", ORAPARM_INPUT, ORATYPE_VARCHAR2,1, 255"
Set inAAA = OraConnection Parameters("AAA")

OraConnection ExecuteSQL ("BEGIN DataCheck(:inAAA);END;")

& x27;ADO <こちらではえらーが出ます>
cn Open "Provider=OraOLEDB Oracle;Data Source=" & Name & ";User ID=" & UserName & ";Password=" & Passwd
Dim cmd As ADODB Command
Set cmd = CreateObject("ADODB Command")
Set cmd ActiveConnection = cn

Set param = cmd CreateParameter("inAAA", adVariant, adParamInput, 255, Array(AAA))
cmd Parameters Append param
cmd CommandText = "BEGIN DataCheck(:inAAA); END;"
cmd Execute & x27;←ここでエラー

ADOでoo4oのように配列をプロシージャに渡して実行することは可能なのでしょうか
可能であればどの場所が間違っているかご教示願えませんでしょうか

Oracle Version 11g
Windows 7 64bit
Excel 32bit

よろしくお願いします Insider。,カーソル変数の入力パラメータを持つプロシージャの呼び出し
方, , サーバで実行すると接続できない, ,
で引数に配列を持つストアドファンクションのパラメータセット
について, , から/をキックをするときに型引数を
渡すには?で接続を使用して型の値取得に関して, , /
/

テーブル値パラメーター。このメソッドを使用して渡すことができるデータの量は。許可されている
パラメーター数によって制限されます。 ただし。複数の
ステートメントをまとめてバッチ送信しても。サーバーで実行されるときは
それぞれ個別に処理されます。次の – フラグメントは。ストアド
プロシージャ定義の中でテーブル値パラメーターを宣言する方法を示しています
。テーブル値パラメータについて少し整理とメモ。に対してアプリケーションから複数行のデータを渡す時に利用できる
仕組みとして。テーブル値アプリケーションからクエリを発行する際に配列を
渡したい』と思った時に等にも利用できる。便利な仕組みです。渡された-
内ストアドプロシージャや関数内では通常のテーブルと同じように読み
だすことができる; 以下の制限がある においてに
パラメータを渡すにはを作成してセットするわけですが。

DataTypeEnumにはadArrayという列挙値があるので、追加すれば良いのではと思います____________________________________↓型は指定した方が良いと思います。Set param = cmd.CreateParameterinAAA, adVarChar or adArray, adParamInput, 255, ArrayAAA「DataTypeEnum」

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です