- - PR -
カーソル変数の入力パラメータを持つプロシージャの呼び出し方
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-11-27 18:44
ORACLEのストアドプロシージャの入力パラメータにカーソル変数を設定し、
それのプロシージャを.NETから呼び出する場合、.NET側で入力パラメータに設定するデータ型を教えて下さい。 以下のように.NETからDataset型の変数をパラメータとしてストアドに 渡しているのですが、できません。 Datatable型で渡してもできませんでした。 そもそも、Dataset型、Datatable型ではないのでしょう? ■===== プロシージャ ================== TYPE cursor IS REF CURSOR; PROCEDURE MAIN(inPara IN ref_cursor) IS BEGIN ・・・ FETCH inPara INTO cursor_data ・・・ END ==================================== 上記プロシージャを下記.NETで呼び出し ★===== .NET ======================= Public objCmd As New OracleCommand Dim para_cursor = New OracleParameter("inPara", OracleDbType.RefCursor) Dim ds = New DataSet 〜 データベースをオープンする処理は省略〜 objCmd.CommandType = CommandType.StoredProcedure objCmd.CommandText = "MAIN" para_cursor.Direction = ParameterDirection.Input para_cursor.Value = ds objCmd.Parameters.Add(para_cursor) objCmd.ExecuteNonQuery() ============================================ [ メッセージ編集済み 編集者: bu 編集日時 2008-12-01 19:52 ] |
|
投稿日時: 2008-11-29 11:53
カーソルをINで渡す意味は何なのでしょう。
カーソルを受け取る事は私も経験があり、どんな時に使用するの か分かるのですが、ご質問のケースは想像できません。 もしかしたら、プログラム処理設計そのものに問題があるのかも しれません。 |
|
投稿日時: 2008-12-01 12:24
.NETで作った画面から入力データをプロシージャに渡して、処理を行い最終的にINSERTする。という処理になります。
カーソルでなくてもPL/SQLに表形式のデータをINで渡したいのです。 |
|
投稿日時: 2008-12-01 13:36
ODP.netよくわかんないけど、Nested-tableとして、バインドしてあげれば、いけるかもね。
http://forums.oracle.com/forums/thread.jspa?messageID=1248007& |
|
投稿日時: 2008-12-01 13:40
マルチポストするならするで、ちゃんと書いといてくれ!!!
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47413&forum=7 |
|
投稿日時: 2008-12-01 19:48
ODP.netを使用していますが、サンプルのようにINパラメータにNestTableの型を指定することができません。そもそもOracleDbTypeにNestTableがありません。
>マルチポストするならするで、ちゃんと書いといてくれ!!! すみません。書いたことを忘れてて投稿しちゃいました。。。 [ メッセージ編集済み 編集者: bu 編集日時 2008-12-01 19:53 ] |
1