Connect by nocycle в представлении PL/Plus
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
lki Участник со стажем
Вступление в Клуб: 18.03.2008
|
Пн Июл 01, 2013 18:53  Connect by nocycle в представлении PL/Plus |
|
Полезность: Нет оценки
|
Добрый день!
Подскажите, пожалуйста, в какое "место" в описании представления для просмотра PL/Plus нужно вставлять параметр NOCYCLE ?
Ну и может кто подскажет, как красивей сделать выборку в представление следующей информации (именно для представления):
есть таблица с полями, одно из которых дата (пусть будет DATE_BEGIN), необходимо построить вьюшку, в которой поле DATE_BEGIN будет наращиваться до текущей даты с интервалом 1 месяц, а также имеется колонка с функцией одним из параметров, которой является наращиваемая дата...
Пример:
исходная таблица:
DATE_BEGIN.....NUM_DOG
----------------+--------------
01/03/13......|...01-13
15/04/13......|...02-13
текущая дата: 01/07/13
результат в представлении:
DATE..........NUM_DOG..результат FUNC(NUM_DOG,DATE)
-------------+-------------+---------------------------
01/04/13..|..01-13......|.FUNC(01-13,'01/04/13')
01/05/13..|..01-13......|.FUNC(01-13,'01/05/13')
01/06/13..|..01-13......|.FUNC(01-13,'01/06/13')
01/07/13..|..01-13......|.FUNC(01-13,'01/07/13')
15/05/13..|..02-13......|.FUNC(02-13,'15/05/13')
15/06/13..|..02-13......|.FUNC(02-13,'15/06/13')
нюанс в том, что исходная таблица большая, с различным набором дат, есть подозрение, что иногда происходит зацикливание дерева в CONNECT BY, для чего собственно задал вопрос про NOCYCLE.
ну а сама задачка для понимания, что охота получить в итоге, может будут какие-то идеи.
Заранее спасибо! |
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Чт Окт 24, 2013 10:27  Re: Connect by nocycle в представлении PL/Plus |
|
Полезность: Нет оценки
|
lki пишет: | Подскажите, пожалуйста, в какое "место" в описании представления для просмотра PL/Plus нужно вставлять параметр NOCYCLE ?
|
Странно, что никто не ответил.
Надеюсь, не сидишь с июля в ожидании ответа
На уровне мысли - вдруг кто поиском будет искать решение подобной задачи....
и лучше так не делать из-за побочных эффектов.
1) Пишешь запрос на чистом SQL - не на склплюс.
Заодно отлаживаешь запрос по-человечески, интерактивно его выполняя и контролируя глазами результат выполнения.
2) Суешь этот запрос во вьюшку - опять же как Оракловый объект
Код: | create view la_la as select ... |
3) В ЦФТ-шном pl/plus представлении пользуешь тобой созданную вьюшку - поищи на форуме как это делается, обсуждали. Ключевое слово для поиска %type
Побочный эффект - в словаре ЦФТ твоей вьюшки нет и про нее ничего ЦФТ-шные утилиты не знают. Т.е. переносить на рабочий сервер, архивировать, контролировать права к ней, обновлять (вощем, сопровождать) - только напрямую в Оракле в обход ЦФТ-шного АСД. |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Чт Окт 24, 2013 13:49  Re: Connect by nocycle в представлении PL/Plus |
|
Полезность: 1
|
Damir пишет: | lki пишет: | Подскажите, пожалуйста, в какое "место" в описании представления для просмотра PL/Plus нужно вставлять параметр NOCYCLE ?
|
Странно, что никто не ответил.
Надеюсь, не сидишь с июля в ожидании ответа
На уровне мысли - вдруг кто поиском будет искать решение подобной задачи....
и лучше так не делать из-за побочных эффектов.
1) Пишешь запрос на чистом SQL - не на склплюс.
Заодно отлаживаешь запрос по-человечески, интерактивно его выполняя и контролируя глазами результат выполнения.
2) Суешь этот запрос во вьюшку - опять же как Оракловый объект
Код: | create view la_la as select ... |
3) В ЦФТ-шном pl/plus представлении пользуешь тобой созданную вьюшку - поищи на форуме как это делается, обсуждали. Ключевое слово для поиска %type
Побочный эффект - в словаре ЦФТ твоей вьюшки нет и про нее ничего ЦФТ-шные утилиты не знают. Т.е. переносить на рабочий сервер, архивировать, контролировать права к ней, обновлять (вощем, сопровождать) - только напрямую в Оракле в обход ЦФТ-шного АСД. |
Зачем человека путать.
Можно прямо в PL/Plus представлении сделать, какие проблемы?
Цитата: |
type main is
select dep(dep%id) in ::[DEPART] connect nocycle by prior dep%id = dep.[HIGH]
...
|
|
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Чт Окт 24, 2013 14:47  Re: Connect by nocycle в представлении PL/Plus |
|
Полезность: Нет оценки
|
devor пишет: |
Зачем человека путать.
Можно прямо в PL/Plus представлении сделать, какие проблемы?
Цитата: |
type main is
select dep(dep%id) in ::[DEPART] connect nocycle by prior dep%id = dep.[HIGH]
...
|
|
Да, попробовал - работает.
Проблемы - доку читаем только Оракловую. Она доступнее, примеров в ней масса - в отличии от....
А в Оракловой клаузе порядок не такой, как в ЦФТ-шной.
Цитата: | connect by nocycle |
PS: какой великий смысл в такой перестановке клауз? в чём профит? |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Чт Окт 24, 2013 15:03  Re: Connect by nocycle в представлении PL/Plus |
|
Полезность: Нет оценки
|
Damir пишет: |
Да, попробовал - работает.
Проблемы - доку читаем только Оракловую. Она доступнее, примеров в ней масса - в отличии от....
А в Оракловой клаузе порядок не такой, как в ЦФТ-шной.
Цитата: | connect by nocycle |
|
В поставке ТЯ есть changelog с описанием изменений в синтаксисе - PLPLUS.TXT
В нем можно искать знакомые слова.
Damir пишет: |
PS: какой великий смысл в такой перестановке клауз? в чём профит? |
Контакты руководителя управления по развитию Платформы есть на сайте ЦФТ - можешь адресовать вопрос непосредственному автору  |
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пт Окт 25, 2013 14:08  Re: Connect by nocycle в представлении PL/Plus |
|
Полезность: Нет оценки
|
devor пишет: |
Damir пишет: |
PS: какой великий смысл в такой перестановке клауз? в чём профит? |
Контакты руководителя управления по развитию Платформы есть на сайте ЦФТ - можешь адресовать вопрос непосредственному автору  |
Не хочу - еще подумает, что это МНЕ нужно больше чем ему.
"Надмножество подмножества..."
Если уж отталкиваться от подмножества языка pl/sql, то синтаксис надо было сохранить, конечно. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|