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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как вернуть датасет из сохраненки? 
V
    Опции темы
Nuzur
Дата 25.2.2008, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Появилась задача написать сохраненку которая бы возвращала клиенту набор данных. Как такое реализовать?


--------------------
Never again...
PM MAIL   Вверх
DKroshkin
Дата 25.2.2008, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Сделать возвращаемым значением или выходным параметром курсор на данные
PM MAIL   Вверх
LSD
Дата 25.2.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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





--------------------
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   Вверх
Nuzur
Дата 26.2.2008, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



LSD, А более расширенное можна?
Очень интерестно кто отвечает за освобождение памяти при получении из функции PIPELINED.


Это сообщение отредактировал(а) Nuzur - 26.2.2008, 15:04


--------------------
Never again...
PM MAIL   Вверх
LSD
Дата 26.2.2008, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Тот же кто и в обычном случае - тот кому передали курсор. Он должен его закрыть.


--------------------
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   Вверх
Nuzur
Дата 26.2.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



LSD,  я не так про курсор спрашивал а про функцию которая отдает набор, тоесть в таком случаи:
При вызове f_pipe как будет идти управление памятью?
Код

CREATE OR REPLACE TYPE simple_pipe IS OBJECT
(
    in_num NUMBER(10),
    in_chr  VARCHAR2(255)
);

CREATE OR REPLACE TYPE table_pipe IS TABLE OF simple_pipe;

CREATE OR REPLACE FUNCTION f_pipe(num_in IN NUMBER)
RETURN table_pipe PIPELINED
IS
BEGIN
    
    FOR i IN (SELECT * FROM dic_index_region )
    LOOP
        PIPE ROW (simple_pipe(i.id, i.ndx_name_index));
    END LOOP;
    
    RETURN;
    
EXCEPTION
    WHEN OTHERS THEN 
        DBMS_OUTPUT.PUT_LINE('Fatal error encountered!');
        RETURN;
END f_pipe;




--------------------
Never again...
PM MAIL   Вверх
Sqlninja
Дата 26.2.2008, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 15.5.2006
Где: San Francisco, CA

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



Цитата(Nuzur @  26.2.2008,  16:53 Найти цитируемый пост)
При вызове f_pipe как будет идти управление памятью?

Это Вы так скать, из чистого любопытства интересуетесь?


--------------------
It's better to burn out than to fade away.
PM MAIL WWW ICQ   Вверх
Nuzur
Дата 27.2.2008, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Sqlninja, Не совсем, просто не хочу наступить на грабли с ликами памяти smile Вообще полезно понимать что как происходит.


--------------------
Never again...
PM MAIL   Вверх
Sqlninja
Дата 27.2.2008, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 15.5.2006
Где: San Francisco, CA

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



В данном случае неявный курсор закроется по закрытию функции (оператора). Exception является частным случаем закрытия функции, и все запайпленное погибнет вместе с курсором. Вообще PL/SQL не дает средств управления памятью, поэтому здесь достаточно следить за закрытием явных курсоров. Если исп-ся Java, то главное следить за ResultSet, Statement, Connection.


--------------------
It's better to burn out than to fade away.
PM MAIL WWW ICQ   Вверх
Nuzur
Дата 27.2.2008, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Sqlninja, Огромное спасибо. Понял.


--------------------
Never again...
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.0631 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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