C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■100051 / )  Oracle Package呼出時エラー PLS-00306
□投稿者/ AS702 (1回)-(2022/06/30(Thu) 19:15:50)

分類:[C#] 

Oracle Package呼出時エラー PLS-00306

お世話になっております。
C#よりOracleのPackageを呼び出すコーディングを行っておりますが、以下のエラーとなりデータの取得ができませんでした。
どのようにしたら、データが取得できるかご教授願います。


**************エラー内容Start**************
ORA-06550: 行1、列7:
PLS-00306: '検索'の呼出しで、引数の数または型が正しくありません。
ORA-06550: 行1、列7:
PLS-00306: '検索'の呼出しで、引数の数または型が正しくありません。
ORA-06550: 行1、列7:
PL/SQL: Statement ignored
**************エラー内容End**************

**************OraclePackage定義Start**************
CREATE OR REPLACE PACKAGE P_顧客DB AS
type 入力情報 is table of VARCHAR2(60) index by BINARY_INTEGER;
type 出力情報 is table of VARCHAR2(60) index by BINARY_INTEGER;
PROCEDURE 検索( In_更新有無 IN NUMBER,
In_入力項目 IN 入力情報,    ← 本項目に店番(1)、顧客番号(123456)をセットして、該当レコードを取得します。
Out_出力項目 OUT 出力情報 ); ← 本項目にselect文で取得したデータが入ります。(配列項目数:160個)
END P_顧客DB;
/
**************OraclePackage定義End**************

**************C#コーディングStart**************
DataSet dSet = new DataSet();

//データベース接続を開く
OracleConnection conn = new OracleConnection(P.Default.conn_string);
conn.Open();

string [] p_In_入力項目 = new string[2];
string [] p_In_出力項目 = new string[160];
OracleCommand cmd = new OracleCommand();

cmd.Connection = conn;
cmd.BindByName = true;

p_In_入力項目[0] = "1";
p_In_入力項目[1] = "123456";

cmd.Parameters.Add("O_顧客検索", OracleDbType.Varchar2, 60, p_In_出力項目, ParameterDirection.ReturnValue);
cmd.Parameters.Add("int_更新有無", OracleDbType.Decimal, 0, ParameterDirection.Input);
cmd.Parameters.Add("I_顧客検索", OracleDbType.Varchar2, 60, p_In_入力項目, ParameterDirection.Input);
cmd.CommandText = "Begin P_顧客DB.検索(:int_更新有無,:I_顧客検索,:O_顧客検索);
END;";

cmd.ExecuteNonQuery(); ←ここでエラー発生

//データの取得方法もご教授願いたいです。

return dSet;
**************C#コーディングEnd**************

よろしくお願いいたします。
返信 編集キー/


管理者用

- Child Tree -