Использование Oracle ref курсор в Java без зависимости от Oracle - PullRequest
10 голосов
/ 15 января 2009

Согласно Google и некоторым другим источникам (например, http://www.enterprisedt.com/publications/oracle/result_set.html),, если я хочу вызвать хранимую функцию, которая возвращает курсор ref, мне нужно написать что-то подобное для доступа к ResultSet:

String query = "begin ? := sp_get_stocks(?); end;";
CallableStatement stmt = conn.prepareCall(query);
// register the type of the out param - an Oracle specific type
stmt.registerOutParameter(1, OracleTypes.CURSOR);
// set the in param
stmt.setFloat(2, price);
// execute and retrieve the result set
stmt.execute();
ResultSet rs = (ResultSet)stmt.getObject(1);

Есть ли возможность сделать это без введения зависимости времени компиляции от Oracle. Есть ли общая альтернатива OracleTypes.CURSOR?

Ответы [ 2 ]

5 голосов
/ 15 января 2009

Константа OracleTypes.CURSOR - это -10. Довольно уродливое решение, но вы можете просто написать -10 или создать собственную константу, значение которой равно -10.

1 голос
/ 15 января 2009

Вы пробовали java.sql.Types.OTHER? Это может сработать. API говорит, что это для конкретных типов баз данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...