- - PR -
ODP.NETを使用してOUT引数に配列を持つストアドファンクションのパラメータセットについて
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-08-13 20:50
VB.NET + ODP.NET 初心者です。
OracleDBにOUT引数に配列を持つストアドを作成して VB.NET + ODP.NETでコールしようとしているんですが、 配列引数のパラメータセット部分とパラメータを取得部分の記述方法がわかりません 使用しているバージョンについては Oracleは9i ODP.NETは9.2.0.401です ご教授宜しくお願いします。 |
|
投稿日時: 2004-08-20 03:01
すみません、C#でのサンプルですが…手続きとしては同じだと思います。
Output属性のバインドパラメータ設定と取得方法を知りたいとの事ですので、他の手続きは省略してあります。 参考になれば…投稿してる環境で試してないので間違ってるかも(汗) -------------- -- PL/SQL -------------- CREATE PACKAGE test_pkg AS TYPE text_t IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER; PROCEDURE test( p_array OUT test_t); END test_pkg; // ------------------ // C# // ------------------ OracleCommand cmd = new OracleCommand(); OracleParameter param = new OracleParameter(); param.ParameterName = "test_p"; param.OracleDbType = OracleDbType.Varchar2 ; param.Value = DBNull.Value ; // null(VB では Nothing)でも良い param.CollectionType = OracleCollectionType.PLSQLAssociativeArray; // これは必ず指定 param.ArrayBindSize = new int[]{20, 20, 20}; // 配列要素ごとのサイズを指定(Varchar2など可変長データのみ) param.Size = 3 ; // 予想される配列の最大要素数 cmd.Parameters.Add(param); string StoredProc = "BEGIN test_pkg.test( p_array => :test_p ); END;"; cmd.CommandText = StoredProc ; cmd.ExecuteNonQuery(); string[] result = (string[])param.Value ; // VBってキャスト出来たっけ? [ メッセージ編集済み 編集者: かずぴー 編集日時 2004-08-20 03:09 ] |
1
