- - PR -
.NETからストアドプロシージャの引数設定方法
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-08-22 12:52
初めて間もないので、意味が通じるか心配ですが
宜しく回答お願いします。 できれば、以下のサンプルに追加記述してもらうと助かります。 オラクルサーバー(oracle9i)内に以下のストアドを置き ------------------------------------ CREATE OR REPLACE PROCEDURE "テスト" (aaa in number,ppp in out varchar2) is ppp:='OK'; end; ----------------------------------- .NETからバインド変数として渡して戻り値を取得したいのですが どの様に記述すれば宜しいか教えて下さい! (:pv部分です。) PVの値(バインド変数)をストアドに渡して .NET で値を参照する方法です。 -------------------------------------------- Dim CN As New OracleClient.OracleConnection Dim CMD As New OracleClient.OracleCommand Dim Data_Read As New OracleClient.OracleDataAdapter CN.ConnectionString="user id=○○○;Data source=○○○;Password=○○○" CMD.Connection=CN CMD.CommandType = CommandType.StoredProcedure ↓ここから下の記述でうまくいきません 実例を記述してもらえると助かります。 PVの値を9で入れて、戻り参照でOKと表示したいのですが・・・ CMD.CommandText = "テスト(0,:pv)" Data_Read = CMD.ExecuteReader Data_Read.Close() msgbox(pv) | ||||
|
投稿日時: 2004-08-23 09:32
クイックスタートチュートリアルのこのへんを読んで頑張ってみてください。
http://ja.gotdotnet.com/quickstart/howto/doc/adoplus/ExecuteCommand.aspx http://ja.gotdotnet.com/quickstart/howto/doc/adoplus/OutParams.aspx [ メッセージ編集済み 編集者: 未記入 編集日時 2004-08-23 09:43 ] | ||||
|
投稿日時: 2004-08-23 14:58
文献を参考に以下のように記述しましたが
下記の内容のエラーが帰ってきます! ORA06550:行1,列17 PLS-00801:内部エラー[22503] ORA06550:行1,列17 PL/SQL:Statement ignored 誰か知恵を貸してください! .NET記述文 Dim PV As New OracleClient.OracleParameter PV.OracleType = OracleClient.OracleType.VarChar PV.Size = 10 PV.Direction = ParameterDirection.InputOutput Dim PLsql As String = "zzz_in(0,v)" CMD.Parameters.Add("PV", PV.OracleType.VarChar, 10).Value = "99" CMD.CommandType = CommandType.StoredProcedure CMD.CommandText = PLsql CMD.ExecuteReader() | ||||
|
投稿日時: 2004-08-23 14:58
文献を参考に以下のように記述しましたが
下記の内容のエラーが帰ってきます! ORA06550:行1,列17 PLS-00801:内部エラー[22503] ORA06550:行1,列17 PL/SQL:Statement ignored 誰か知恵を貸してください! .NET記述文 Dim PV As New OracleClient.OracleParameter PV.OracleType = OracleClient.OracleType.VarChar PV.Size = 10 PV.Direction = ParameterDirection.InputOutput Dim PLsql As String = "zzz_in(0,:pv)" CMD.Parameters.Add("PV", PV.OracleType.VarChar, 10).Value = "99" CMD.CommandType = CommandType.StoredProcedure CMD.CommandText = PLsql CMD.ExecuteReader() | ||||
|
投稿日時: 2004-08-23 15:29
こんにちは。
エラー内容からは、ストアド側(PL/SQL)に問題があるよ、ということだと 思います。 | ||||
|
投稿日時: 2004-08-23 16:17
Oracleエラーメッセージによると、「Oracle社に連絡してください」となっていますが、コンパイルエラーが出ているものをそのまま実行しようとしていると思われます。 何をするにしても、メッセージの正確な意味を知ることは、一番最初にするべきことです。 | ||||
|
投稿日時: 2004-08-23 16:22
SQL*PLUSにて以下のようにして行ったら答えが返ってきましたが???
これを.NETには帰ってこないんでしょうか?? (環境:Oracle9i + .NET) SQL> variable pv varchar2(10) SQL> begin 2 :pv:='NG' 3テスト(0,:pv); 4 end; 5 / PL/SQLプロシージャが正常に完了しました。 SQL> print pv PV -------------------------------- OK | ||||
|
投稿日時: 2004-08-23 16:39
こんにちは。
最初の投稿で提示されていたストアドの内容のうち、以下の修正をしてみると どうなりますか? CREATE OR REPLACE PROCEDURE "テスト" を CREATE OR REPLACE PROCEDURE TEST にする (""を外す、プロシージャ名を半角にする) |
1|2|3
次のページへ»