Oracleにいくつかのパラメーターを持つストアドプロシージャがあり、C#(httpハンドラー)から呼び出していますが、例外が発生することがあります。
PLS-00306:'PROC_ADD _...'の呼び出しで引数の数またはタイプが正しくありませ
んORA-06550:1行7列:
PL / SQL:文が無視されました
私は間違った数やタイプの意味を知っています。これは、プロシージャ呼び出しのすべてのパラメータに値を指定していないことを意味します。
私の質問はこれです私は次のstring.trim()
ようにすべてのパラメータ値で関数を使用しました
だからそれはエラーを与えるはずですまたはobject reference
または私はどこかで間違っています。
var prm = new OracleParameter[8];
prm[0] = Command.Parameters.Add(new OracleParameter("IP_ACTION", OracleType.VarChar, 20));
prm[0].Value = pobjCustomerProps.Action.Trim();
prm[1] = Command.Parameters.Add(new OracleParameter("IOP_CUSTOMER_UID", OracleType.VarChar, 30));
prm[1].Direction = ParameterDirection.InputOutput;
prm[1].Value = pobjCustomerProps.CustomerID.Trim();
prm[2] = Command.Parameters.Add(new OracleParameter("IP_MOBILE_NO", OracleType.VarChar, 50));
prm[2].Value = objEncryption.Encrypt(pobjCustomerProps.MobileNo.Trim());
prm[3] = Command.Parameters.Add(new OracleParameter("IP_CUSTOMER_NAME", OracleType.VarChar, 200));
prm[3].Value = pobjCustomerProps.CustomerName==""? "": objEncryption.Encrypt(pobjCustomerProps.CustomerName.Trim());
prm[4] = Command.Parameters.Add(new OracleParameter("IP_EMAILID", OracleType.VarChar, 500));
prm[4].Value = pobjCustomerProps.EmailID == "" ? "" : objEncryption.Encrypt(pobjCustomerProps.EmailID.Trim());
prm[5] = Command.Parameters.Add(new OracleParameter("IP_MODEL_CODE", OracleType.VarChar, 10));
prm[5].Value = pobjCustomerProps.ModelCode.Trim();
prm[6] = Command.Parameters.Add(new OracleParameter("IP_USER_UID", OracleType.VarChar, 10));
prm[6].Value = pobjCustomerProps.UserUID.Trim();
var lobjparamErrorCode = new OracleParameter("OP_ERROR_CODE", OracleType.Number) { Direction = ParameterDirection.Output };
prm[7] = Command.Parameters.Add(lobjparamErrorCode);
これが私のspの定義です
PROCEDURE PROC_ADD_DETAILS_V1
(
IP_ACTION IN VARCHAR2,
IOP_CUSTOMER_UID IN OUT DIGICALL.CUSTOMER_DTL.CUSTOMER_UID%TYPE,
IP_MOBILE_NO IN DIGICALL.CUSTOMER_DTL.MOBILE_NO%TYPE,
IP_CUSTOMER_NAME IN DIGICALL.CUSTOMER_DTL.CUSTOMER_NAME%TYPE,
IP_EMAILID IN DIGICALL.CUSTOMER_DTL.EMAIL_ID%TYPE,
IP_MODEL_CODE IN DIGICALL.CUSTOMER_DTL.MODEL_CODE%TYPE,
IP_USER_UID IN DIGICALL.CUSTOMER_DTL.USER_UID%TYPE,
OP_ERROR_CODE OUT NUMBER
)