2017-01-19 16 views
0

У меня есть процедура, возвращающая две переменные. одним из них является курсор. я пытался сделать здесь такEbean ORM не работает с курсором оракула

String removalQuery = "{call REA.FILL_EVENT.REMOVAL_73_1_1(?,?,?,?) } "; 
     CallableSql cs = Ebean.createCallableSql(removalQuery); 
     cs.setParameter(1,doc.poeSteamTurbine.vid); 
     cs.setParameter(2,doc.form.periodId); 
     cs.registerOut(3, Types.INTEGER); 
     cs.registerOut(4, Types.REF_CURSOR); 
     Ebean.execute(cs); 

Но это вызывает ошибку

2012 is incorrect data type 

Ebean, способный работать с курсорами?

ответ

0

Я понимаю, что вопрос старый, но я напишу это на случай, если он кому-то поможет.

У меня возникла аналогичная проблема, связанная с базой данных Oracle. В моем случае проблемой был тип REF_CURSOR, который выдает описанную вами ошибку. Мое решение состояло в том, чтобы изменить его на oracle.jdbc.OracleTypes.CURSOR, что решило проблему.

Если вы не используете базу данных Oracle, тип будет чем-то другим, но вам все равно нужно его изменить.