0
Java에서 저장 함수를 호출하려고합니다. 함수에는 패키지가 없으며 사용자 (스키마) USER 아래에 배치되어 커서를 반환합니다. 나는 그것을 부르는 데 20 년을 노력했지만이 작품들 중 아무 것도 시도하지 않았다. 먼저 하나Java에서 저장된 함수 호출을 호출하는 중
Query query = coreDao.getEntityManager().createNativeQuery("{call USER.gen_rephead_sm_task_report(?, ?) }");
query.setParameter(1, dateFrom);
query.setParameter(2, dateTo);
List<?> queryResult = query.getResultList();
은 내가 not a procedure or not defined
나는 또한 createNativeQuery 매개 변수로하지만 같은 결과
select gen_rephead_sm_task_report(?, ?) from dual
이 접근을 시도 얻었다. 하나
Connection connection = dataSource.getConnection();//javax.sql.DataSource
CallableStatement statement = connection.prepareCall("{? = call USER.gen_rephead_sm_task_report(?, ?) }");
statement.registerOutParameter(1, OracleTypes.CURSOR);//oracle.jdbc.OracleTypes
statement.setDate(2, new java.sql.Date(dateFrom.getTime()));
statement.setDate(3, new java.sql.Date(dateTo.getTime()));
statement.executeQuery();
ResultSet set = ((OracleCallableStatement) statement).getCursor(1);
둘째
나는 (분명히 OracleCallableStatement가 된 CallableStatement를 구현하지 않습니다) 마지막 줄에 ClassCastException
을 얻었다. 그래서 여기에 어떤 종류의 소리를 사용합니까?
어떤 드라이버를 사용하십니까? – user75ponic
'odbc-6.11.2.0.1.0'과 함께'Oracle 11g'을 사용하고 있습니다. –
'statement.executeQuery()'대신'statement.execute()'를 시도하십시오 – MaVRoSCy