Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Из PL/SQL в ResultSet / 5 сообщений из 5, страница 1 из 1
03.04.2007, 14:40:42
    #34434374
Из PL/SQL в ResultSet
У меня есть Oracl - функция, которая возвращает таблицу. Подскажите пожалуйста, каким образом вызвать эту функцию в Java и возвращаемые данные запомнить в ResultSet?
Сейчас у меня такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
   String sqlStatement = "{call ? := GET_ROW_NAKL(?)}";
       CallableStatement cst=dMod.getDatabase1().createCallableStatement(sqlStatement);
       cst.registerOutParameter( 1 , Types.STRUCT);
       cst.setString( 2 , dMod.getRees_vyd().getString("ID_KEY"));
       cst.executeUpdate();
       ResultSet result=cst.getResultSet();
       cst.close();
...
Рейтинг: 0 / 0
03.04.2007, 14:44:50
    #34434384
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из PL/SQL в ResultSet
Изучающий Java wrote:

> У меня есть Oracl - функция, которая возвращает таблицу.

Именно таблицу, не refcursor?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
03.04.2007, 15:11:15
    #34434472
Из PL/SQL в ResultSet
Да именно таблицу -
сначала такой тип
Код: plaintext
1.
2.
3.
4.
5.
create or replace type Rows_NAklad as object
(
  NAME_NAK  char ( 80 ),
  KOL_PROC number( 12 , 3 ),
  CENA number( 12 , 2 )
)
и дальше
Код: plaintext
create or replace type TABLE_NAK AS TABLE of ROWS_NAKLAD;
и потом сама функция
Код: plaintext
create or replace function GET_ROW_NAKL(ID_KEYR  CHAR )  return  TABLE_NAK pipelined is ...
...
Рейтинг: 0 / 0
03.04.2007, 15:24:18
    #34434531
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из PL/SQL в ResultSet
Если уж написана pipelined-функция, то можно просто делать из нее SELECT как из таблицы, без возни с оракловыми объектами, т.е.:
Код: plaintext
1.
2.
3.
4.
String sqlStatement = "select * from table(GET_ROW_NAKL(?))";
PreparedStatement pst = dMod.getDatabase1().createPreparedStatement(sqlStatement);
cst.setString( 1 , dMod.getRees_vyd().getString("ID_KEY"));
ResultSet result = pst.executeQuery();
...
Рейтинг: 0 / 0
03.04.2007, 15:50:31
    #34434642
Из PL/SQL в ResultSet
Спасибо, только теперь возникает ошибка в самой фунции, буду разбираться...
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Из PL/SQL в ResultSet / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]