編集:私はここのスレッドを洗い上げてきたと私は受け付けており、なぜ私が把握することはできませんポスト#2C# - ORA-06550:間違った番号または呼び出しの引数のタイプの「DOPROCESS」に
を参照してください。 ORA-06550メッセージ。
エラーのないOracleのPL/SQLプロセス。
保存されたPROCは5つのパラメータを受け取り、例外処理のために1つのNUMBERパラメータを出力しようとしています。
私が間違っていることを教えてください。あなたは、ADO.NETでのOUTPUTパラメータに既存の変数を使用することはできません
PL/SQL
PROCEDURE DoProcess(ocn IN WAREHOUSE.BANK_STATEMENT_ACTIVITY.CHECK_NO%TYPE,
oca IN WAREHOUSE.BANK_STATEMENT_ACTIVITY.AMOUNT%TYPE,
ecn IN WAREHOUSE.BANK_STATEMENT_ACTIVITY.CHECK_NO%TYPE,
eca IN WAREHOUSE.BANK_STATEMENT_ACTIVITY.AMOUNT%TYPE,
usr IN WAREHOUSE.BANK_STATEMENT_ACTIVITY.OVERRIDDEN_USER_ID%TYPE,
errCode OUT NUMBER)
AS
BEGIN
Initialize(ocn, oca, ecn, eca, usr);
DBMS_OUTPUT.PUT_LINE('ocn: ' || ocn || CHR(10) ||
'oca: ' || oca || CHR(10) ||
'ecn: ' || ecn || CHR(10) ||
'eca: ' || eca || CHR(10) ||
'usr: ' || usr);
IF IsValid(bsa_rec.CHECK_NO, errCode) THEN UpdateProc;
--DBMS_OUTPUT.PUT_LINE('errCode: ' || errCode);
END IF;
END DoProcess;
C#
public Int32 BankDataExceptionsDoProcess(string ckNo, string ckAmt, string checkNo, string checkAmt, string user)
{
Int32 errCode = 0;
ckNo = ckNo.Trim();
double dblCkAmt = double.Parse(ckAmt.Trim());
checkNo = checkNo.Trim();
double dblCheckAmt = double.Parse(checkAmt.Trim());
int uid = int.Parse(user);
object obj = null;
if (DBC == null)
DBC = new DBConn();
DBC.ExecutePackage(Vars.pkgBankDataExceptions,
out obj,
new ParameterDirection[] { ParameterDirection.Input,
ParameterDirection.Input,
ParameterDirection.Input,
ParameterDirection.Input,
ParameterDirection.Input,
ParameterDirection.Output },
new object[] { ckNo, dblCkAmt, checkNo, dblCheckAmt, uid, errCode }
);
return errCode;
}
おかげチャック、私はそれを考え出すことになった、あなたは何を意味するか参照してください。私はこの投稿が遅いことを知っていますが、私はいくつかの古い投稿を見直していましたが、これはupvoteに値するものです。再度、感謝します! – TheSchnitz