A stored procedure is declared which takes 8 parameters as given below
PROCEDURE PR_DYN_LISTVAL(P_REF_NO NUMBER,
P_SERV_ID VARCHAR2,
P_TYPE VARCHAR2,
P_MIN_ROW VARCHAR2 DEFAULT NULL,
P_MAX_ROW VARCHAR2 DEFAULT NULL,
P_SUCCESS_YN OUT NUMBER,
P_FLAG OUT SYS_REFCURSOR,
P_OUT OUT SYS_REFCURSOR);
I am calling the above procedure using entitymanager in spring data jpa but is not required to set all the parameters
StoredProcedureQuery storedProcedureQuery= entityManager.createStoredProcedureQuery("PGIPK_ONLINE_FULFILMENT.PR_DYN_LISTVAL",Integer.class, Object.class, Object.class);
storedProcedureQuery.registerStoredProcedureParameter("P_REF_NO",Integer.class,ParameterMode.IN);
storedProcedureQuery.registerStoredProcedureParameter("P_SERV_ID",String.class,ParameterMode.IN);
storedProcedureQuery.registerStoredProcedureParameter("P_TYPE",String.class,ParameterMode.IN);
storedProcedureQuery.registerStoredProcedureParameter("P_SUCCESS_YN",Integer.class,ParameterMode.OUT);
storedProcedureQuery.registerStoredProcedureParameter("P_FLAG",Object.class,ParameterMode.REF_CURSOR);
storedProcedureQuery.registerStoredProcedureParameter("P_OUT",Object.class,ParameterMode.REF_CURSOR);
storedProcedureQuery.setParameter("P_REF_NO",1943499);
storedProcedureQuery.setParameter("P_SERV_ID","GET_SECURITY_DEVICES");
storedProcedureQuery.setParameter("P_TYPE","List");
boolean result=storedProcedureQuery.execute();
Integer success= (Integer) storedProcedureQuery.getOutputParameterValue("P_SUCCESS_YN");
I am getting an error
{call PGIPK_ONLINE_FULFILMENT.PR_DYN_LISTVAL(?,?,?,?,?,?,?)}, Error Message = ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'PR_DYN_LISTVAL'
How to ensure that a correct procedure call is made with limited input params only. The db being used is Oracle.