- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:.NETからストアドプロシージャを実行)
.NETでVB.NetからOracleのストアドプロシージャを実行する方法
このQ&Aのポイント
- VB.NetからOracleのストアドプロシージャを実行する方法が分からないので、ご指導ください。
- VB.NetでIN OUTの引数を渡す方法が分からず、「式が割り当てられていません」というエラーが出ます。
- .NETを始めたばかりで、ストアドプロシージャの実行方法についてまったく分からない状態です。ご教示お願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは、じゃんぬねっと です。 流れとしては、 ・OracleCommand のインスタンスを正しく生成。 ・CommandText に、プロシージャ名を設定する ・CommandType に、CommandType.StoredProcedure を設定。 ・Parameters にパラメタを Add する。 ・初期値を Value に設定する ・ExecuteNonQuery あたりを実行。 ・オブジェクトの解放
お礼
解決しました! 列の大きさはデータベース側の問題で、そちらを調べてみることでうまくいきました。 データベース自体もまったく理解ができていなかったので、じゃんぬねっとさんには丁寧に流れを教えていただいて感謝しています。 いろんなエラー出したので、少しだけ分かりかけてきました。 ありがとうございました!
補足
返信ありがとうございます。 以下の方法で試してみました。 Dim con As New OracleConnection Dim cmd As OracleCommand cmd = New OracleCommand("test", con) cmd.CommandType = CommandType.StoredProcedure Dim aaa As OracleParameter = _ cmd.Parameters.Add("aaa", OracleDbType.Int32,ParameterDirection.Input) acc.Value = 10 Dim bbb As OracleParameter = _ cmd.Parameters.Add("bbb", OracleDbType.Varchar2,ParameterDirection.Input) acc.Value = "テスト" Dim ccc As OracleParameter = cmd.Parameters.Add("ccc", OracleDbType.Varchar2,255,DBNull.Value,ParameterDirection.InputOutput) ccc.Value = "" cmd.ExecuteNonQuery() cmd.Dispose() 実行の結果、"列に格納する値が大きすぎます"でエラーになります。 何のサイズのことを指しているのか、よく分かりません。 書き方以外でも見落としている箇所がございましたら、よろしくお願い致します。 補足ですが、OracleへはODP.NETで接続しています。