|
分類:[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**************
よろしくお願いいたします。
|