I am binding data via Stored procedure but I am getting error as
wrong number or types of arguments in call to 'GET_MANUAL_LOS_REQ_STATUS'\nORA-06550:
Here is the procedure
create or replace PROCEDURE GET_MANUAL_LOS_REQ_STATUS
(
P_CURR OUT SYS_REFCURSOR,
P_OUTSTATUS OUT VARCHAR2,
P_MESSAGE OUT VARCHAR2
) AS
T_CNT NUMBER :=0;
BEGIN
OPEN P_CURR FOR
SELECT LOS.A6_NEID, LOS.SOURCE, LOS.STATUS, LOS.REMARKS,
LOS.MODIFIED_DATE, LOS.USERNAME, REQ.STATUS LOS_STATUS FROM LOS_REQUEST_MANUAL LOS,
APP_3DPT.LOS_REQUEST_LOG REQ
WHERE LOS.A6_NEID = REQ.LOS_REQUEST_ID ORDER BY MODIFIED_DATE DESC;
P_OUTSTATUS :='SUCCESS';
EXCEPTION WHEN OTHERS THEN
P_OUTSTATUS :='FAILED';
P_MESSAGE :=SQLERRM;
END GET_MANUAL_LOS_REQ_STATUS;
Also below is the code.
public DataTable Bind_Grid_Data()
{
OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings["ConnectionStringAirFiber"].ConnectionString);
try
{
OracleCommand cmd = new OracleCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = ConfigurationManager.AppSettings["GET_MANUAL_LOS_REQ_STATUS"];
cmd.Connection = conn;
cmd.Parameters.Add(new OracleParameter
{
ParameterName = "P_CURR",
OracleDbType = OracleDbType.RefCursor,
Size = 500,
Direction = ParameterDirection.Output
});
cmd.Parameters.Add(new OracleParameter
{
ParameterName = "P_OUTSTATUS",
OracleDbType = OracleDbType.RefCursor,
Size = 500,
Direction = ParameterDirection.Output
});
cmd.Parameters.Add(new OracleParameter
{
ParameterName = "P_MESSAGE",
OracleDbType = OracleDbType.RefCursor,
Size = 500,
Direction = ParameterDirection.Output
});
if (conn.State != ConnectionState.Open) conn.Open();
OracleDataAdapter daIPColo = new OracleDataAdapter(cmd);
DataTable dtIPColo = new DataTable();
daIPColo.Fill(dtIPColo);
return dtIPColo;
}
catch (Exception ex)
{
throw;
}
finally
{
if (conn.State == ConnectionState.Open) conn.Close();
}
}
Probably a copy and paste error.
Your parameters P_OUTSTATUS
and P_MESSAGE
are VARCHAR2
, but you bind them as OracleDbType.RefCursor
...