Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция-record 
:(
    Опции темы
setnull
Дата 5.3.2009, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 3.7.2007

Репутация: 1
Всего: 1



Все здравствуйте!

Вопрос. 
Есть функция, возвращающая RECORD. Как ее запросить из явы, чтоб вернулся набор данных, состоящий из одной строки?

Спасибо!
PM MAIL   Вверх
v2v
Дата 5.3.2009, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 1
Всего: 56



Написать обёрточную функцию , которая принимает Тип RECORD и преобразует в строку.


--------------------
PM   Вверх
setnull
Дата 6.3.2009, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 3.7.2007

Репутация: 1
Всего: 1



Спасибо. Была такая идея.
Не катит.
Таких функций очень много.


Я имею ввиду как-то в запросе преобразовать можно, как PIPELINED?
как-то так
Код

select * from ROW(my_func());



Это сообщение отредактировал(а) setnull - 6.3.2009, 09:30
PM MAIL   Вверх
Deniel_li
Дата 6.3.2009, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 6.12.2007

Репутация: нет
Всего: 1



можно или через объектные типы или при помощи ref cursor
PM MAIL   Вверх
Deniel_li
Дата 6.3.2009, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 6.12.2007

Репутация: нет
Всего: 1



что-то вроде


create type numset_t as table of number;
/

create function f1(x number) return numset_t pipelined is
begin
for i in 1..x loop
pipe row(i);
end loop;
return;
end;
/
-- pipelined function in from clause
select * from table(f1(3));


PM MAIL   Вверх
setnull
Дата 11.3.2009, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 3.7.2007

Репутация: 1
Всего: 1



Так сдесь же не запись возвращается, а PIPELINED....
а я имел ввиду каким образом результат РЕКОРДОВЫЙ представить в виде PIPELINED (с одной строкой)?...

Ладно.... а как из явы запросить результат РЕКОРДОВОЙ функции?
Код

type my_type is record(
.......
....
);

function my_func
rerturn my_type;


Можно ее как-нить в HashMap, скажем, отобразиьт?
PM MAIL   Вверх
LSD
Дата 11.3.2009, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(setnull @  11.3.2009,  10:26 Найти цитируемый пост)
Ладно.... а как из явы запросить результат РЕКОРДОВОЙ функции?

Никак. Тип RECORD не имеет представления в JDBC.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
VOS
Дата 12.3.2009, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: нет
Всего: 8



Попробуйте так smile
 
select  my_func(param) from dual
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0762 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.