This is my PL/SQL code:
create or replace PROCEDURE "USP_TAXMASTER" (
P_OPMODE IN NUMBER DEFAULT 4 ,
P_SALETYPE IN VARCHAR2 DEFAULT NULL,
P_TAX_CODE IN CHAR DEFAULT NULL ,
P_TAX_NAME IN VARCHAR2 DEFAULT NULL ,
P_TAX_PERCENT IN NUMBER DEFAULT 0,
P_TAX_ON IN VARCHAR2 DEFAULT NULL ,
--P_TAX_GROUP IN VARCHAR2 DEFAULT NULL ,
P_STATUS IN VARCHAR2 DEFAULT NULL ,
CV_1 IN OUT SYS_REFCURSOR,
O_TAX_CODE OUT VARCHAR2
)
AS
V_TEMP NUMBER;
V_AUTO_NO VARCHAR2(100);
V_TAX_CODE VARCHAR2(100);
V_TEMP1 NUMBER;
It works fine when I call it from Oracle SQL Developer. But I am getting error ORA-6550: Wrong number of Arguments
when I call it from C#. Below is my C# code snippet.
public void AssignmentParameterValues(OracleCommand cmd, TaxMasterVO.TaxMaster ObjTaxMaster, int opMode)
{
cmd.Parameters.Add("P_OPMODE",OracleDbType.Int32, opMode,200,ParameterDirection.Input);
cmd.Parameters.Add("P_SALETYPE", OracleDbType.Varchar2, 200, Equals(ObjTaxMaster.SaleType, null) ? "" : Convert.ToString(ObjTaxMaster.SaleType), ParameterDirection.Input);
cmd.Parameters.Add("P_TAX_CODE", OracleDbType.Char, 200, Equals(ObjTaxMaster.TaxCode, null) ? "" : Convert.ToString(ObjTaxMaster.TaxCode), ParameterDirection.Input);
cmd.Parameters.Add("P_TAX_NAME", OracleDbType.Varchar2, 200, Equals(ObjTaxMaster.TaxName, null) ? "" : Convert.ToString(ObjTaxMaster.TaxName), ParameterDirection.Input);
cmd.Parameters.Add("P_TAX_PERCENT", OracleDbType.Decimal, 200, Equals(ObjTaxMaster.TaxPercentage, null) ? 0 : Convert.ToDecimal(ObjTaxMaster.TaxPercentage), ParameterDirection.Input);
cmd.Parameters.Add("P_TAX_ON", OracleDbType.Varchar2, 200, Equals(ObjTaxMaster.TaxOn, null) ? "" : Convert.ToString(ObjTaxMaster.TaxOn), ParameterDirection.Input);
// cmd.Parameters.Add("P_TAX_GROUP", OracleDbType.Varchar2, 200, Equals(ObjTaxMaster.TaxGroup, null) ? "" : Convert.ToString(ObjTaxMaster.TaxGroup), ParameterDirection.Input);
cmd.Parameters.Add("P_STATUS", OracleDbType.Varchar2, 200, Equals(ObjTaxMaster.TaxStatus, null) ? "" : Convert.ToString(ObjTaxMaster.TaxStatus), ParameterDirection.Input);
cmd.Parameters.Add("O_TAX_CODE", OracleDbType.Varchar2, 200);
cmd.Parameters["O_TAX_CODE"].Direction = ParameterDirection.Output;
cmd.Parameters.Add("CV_1", OracleDbType.RefCursor, 200);
cmd.Parameters["CV_1"].Direction = ParameterDirection.InputOutput;
}
Below is the table Structure:
Name Null? Type
----------- -------- ------------
TAX_CODE NOT NULL CHAR(3)
TAX_NAME NOT NULL VARCHAR2(30)
TAX_PERCENT NOT NULL NUMBER(5,2)
TAX_ON NOT NULL CHAR(3)
STATUS CHAR(1)
I have tried different methods, but not able to fix the error. I even checked the table structure but still no luck. Am I making any mistake which I cannot find? Please suggest.