Hibernate5- call Oracle procedure with OUT parameter as user defined oracle type AS Object and further defined AS Table

37 views Asked by At
PR_procedure1(P_STR_ID VARCHAR2,O_DASH OUT TYPE_DASH_COLL )
-- 
--some data fetching  BULK COLLECT INTO O_DASH 
--
END

CREATE OR REPLACE TYPE TYPE_DASH AS OBJECT (
   ---- some columns
);

CREATE OR REPLACE TYPE TYPE_DASH_COLL FORCE AS TABLE OF TYPE_DASH;

Calling Above procedure from Hibernate

    StoredProcedureQuery procedureCall = session.createStoredProcedureQuery("PR_procedure1");
             StoredProcedureQuery registerStoredProcedureParameter = procedureCall.registerStoredProcedureParameter("P_STR_ID", String.class, ParameterMode.IN);
                
             procedureCall.registerStoredProcedureParameter("O_DASH", SchemeTransactionsDashboardOutput.class, ParameterMode.OUT);
             

SchemeTransactionsDashboardOutput implements SQLData {}  

Giving error as .

 Caused by: java.lang.IllegalArgumentException: Type cannot be null
    at org.hibernate.query.procedure.internal.ProcedureParameterImpl.setHibernateType(ProcedureParameterImpl.java:130)

When I use

 procedureCall.registerStoredProcedureParameter("O_DASH", SchemeTransactionsDashboardOutput[].class, ParameterMode.OUT);

gives error as

Caused by: oracle.jdbc.OracleDatabaseException: ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call 
0

There are 0 answers