Как получить вывод в Java из хранимой процедуры SELECT в Oracle? - PullRequest
0 голосов
/ 29 мая 2010

Я использую Java для подключения к базе данных Oracle 10. Я хочу создать хранимую процедуру (не спрашивайте почему), которая не принимает аргументов и возвращает много строк. В частности, в Java я хочу иметь возможность получить это данные с чем-то вроде:

ResultSet rs = stmt.executeQuery("call getChildless");

где getChildless - это запрос:

SELECT objectid
FROM Object
WHERE objectid NOT IN (SELECT parent FROM subparts);

Тем не менее, я просто не могу на всю жизнь понять, как получить мой вывод из хранимой процедуры. Я гуглил это и получаю весь этот пример кода, который Oracle не будет компилировать, по-видимому, для Предыдущая версия. Рекурсоры, похоже, много подходят, но я не уверен если это то, чего я на самом деле хочу, использовать его с ResultSet.

Ответы [ 4 ]

0 голосов
/ 11 июля 2012

Это может быть сделано CURSOR в oracle и
перебрать этот курсора в коде Java перейдите по этой ссылке:

http://www.mkyong.com/jdbc/jdbc-callablestatement-stored-procedure-cursor-example/

0 голосов
/ 30 мая 2010

JDBC динамически типизирован. Не имеет смысла, что он не будет компилироваться. См. Эту ссылку на учебник JDBC

0 голосов
/ 30 мая 2010

Взгляните на Получение Oracle Cursor с помощью JDBC . Это дает вам то, что вам нужно?

0 голосов
/ 29 мая 2010

Полагаю, Oracle JDBC похож на MS-SQL JDBC ...

while (rs.next())
{
    myint = rs.getInt(1);
}
...