Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 !!!!!!! PIPE  [new]
Александр Экзаров
Member

Откуда: Киев
Сообщений: 32
Есть запрос:
  SELECT id
  FROM NPI_DECISION
    CONNECT BY PRIOR id = document_id
    START WITH id = :doc_id:
И например таблица NPI_DECISION(id: NUMBER, document_id; NUMBER); document_id ссылается на id

Проблема в том, что если происходит зацикливание, то вылетает исключение...
Задача в том, чтобы перехватить исключение в хранимой процедуре...
Нужно чтобы функция возвращала результат запроса, а при исключении пустую выборку, что-то типа такого:
CREATE OR REPLACE FUNCTION DocLinks (
    DocId NUMBER
) RETURN DocLinksType pipelined AS
BEGIN
  /*SELECT id
  FROM NPI_DECISION
     CONNECT BY PRIOR id = document_id
     START WITH id = :doc_id:; */ (Это нужно вернуть функции )

  WHEN EXCEPTION ...... RETURN NULL.....
  RETURN;
END;
К сожалению я не знаю, как сразу функции вернуть результат запроса, без помощи pipe row (...)
Буду очнеь признателен за помощь...
17 окт 06, 13:01    [3270334]     Ответить | Цитировать Сообщить модератору
 Re: !!!!!!! PIPE  [new]
LVA
Member

Откуда: Санкт-Петербург
Сообщений: 231
Забавно, что вопрос стоит так, как будто зацикливание - норма жизни :-))))

...

BEGIN
...

EXCEPTIONS
WHEN OTHERS THEN RETURN;
END;

Да, а где PIPELINED ????
17 окт 06, 14:12    [3270892]     Ответить | Цитировать Сообщить модератору
 Re: !!!!!!! PIPE  [new]
LVA
Member

Откуда: Санкт-Петербург
Сообщений: 231
вижу, вижу pipelined, просмотрел
17 окт 06, 14:13    [3270902]     Ответить | Цитировать Сообщить модератору
 Re: !!!!!!! PIPE  [new]
TiG
Member

Откуда:
Сообщений: 780
В 10g есть фича CONNECT BY NOCYCLE и псевдоколонка CONNECT_BY_ISCYCLE в иерарх.запросах
17 окт 06, 14:39    [3271078]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить