CftClub.ru
Клуб специалистов ЦФТ-Банк

Connect by nocycle в представлении PL/Plus

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
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 ?

Странно, что никто не ответил.
Надеюсь, не сидишь с июля в ожидании ответа Smile
На уровне мысли - вдруг кто поиском будет искать решение подобной задачи....
и лучше так не делать из-за побочных эффектов.

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 ?

Странно, что никто не ответил.
Надеюсь, не сидишь с июля в ожидании ответа Smile
На уровне мысли - вдруг кто поиском будет искать решение подобной задачи....
и лучше так не делать из-за побочных эффектов.

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: какой великий смысл в такой перестановке клауз? в чём профит?


Контакты руководителя управления по развитию Платформы есть на сайте ЦФТ - можешь адресовать вопрос непосредственному автору Smile
Damir
Участник - экстремал


Вступление в Клуб: 29.03.2013
СообщениеПт Окт 25, 2013 14:08   Re: Connect by nocycle в представлении PL/Plus Ответить с цитатой
Полезность: Нет оценки
devor пишет:

Damir пишет:

PS: какой великий смысл в такой перестановке клауз? в чём профит?


Контакты руководителя управления по развитию Платформы есть на сайте ЦФТ - можешь адресовать вопрос непосредственному автору Smile

Не хочу - еще подумает, что это МНЕ нужно больше чем ему. Laughing
"Надмножество подмножества..."
Если уж отталкиваться от подмножества языка pl/sql, то синтаксис надо было сохранить, конечно.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru