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

PL-PLUS представления

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


Вступление в Клуб: 25.01.2011
СообщениеСр Июн 01, 2011 10:11   PL-PLUS представления Ответить с цитатой
Полезность: Нет оценки
Доброго времени суток. Возник такой вопрос, можно ли в PL-Plus представлении написать код типа:
type cur_1 is
select .... ;
type cur_2 is
select ... ;
type main is
select x(....) in cur_1 : x, cur_2 : y... ;

Собственно будет ли такой код корректным и что я увижу в результате (представлении)?
Как я понял из доков:
1. Представление в PL-Plus обладает всеми возможностями PL-Plus, соответственно должно работать, и тут же вопрос можно ли здесь же будет объявлять переменные?
2. По сути в конечном представлении PL-Plus я должен увидеть то что в прописано в main.

Вообщем, если кто знающий, подтвердите или опревергните догадки.
prog
Эксперт


Вступление в Клуб: 03.03.2008
СообщениеСр Июн 01, 2011 11:13    Ответить с цитатой
Полезность: Нет оценки
nOnAME пишет:

Собственно будет ли такой код корректным и что я увижу в результате (представлении)?


будет


nOnAME пишет:

Представление в PL-Plus обладает всеми возможностями PL-Plus, соответственно должно работать, и тут же вопрос можно ли здесь же будет объявлять переменные?


нет
nOnAME
Участник со стажем


Вступление в Клуб: 25.01.2011
СообщениеСр Июн 01, 2011 11:37    Ответить с цитатой
Полезность: Нет оценки
Всем спасибо, уже успел все попробовать и ответить на свои вопросы Smile
nOnAME
Участник со стажем


Вступление в Клуб: 25.01.2011
СообщениеЧт Июн 02, 2011 10:42    Ответить с цитатой
Полезность: Нет оценки
Возник вопрос номер 2:
как в PL-Plus сделать объединение таблиц по типу left или right join?
Т.е. надо написать что то похожее:
select a.name, a.name2, b.number from a left join b только в Pl-plus.

Все, спасибо, поиск по форуму творит чудеса. Smile
nOnAME
Участник со стажем


Вступление в Клуб: 25.01.2011
СообщениеЧт Июн 02, 2011 16:58    Ответить с цитатой
Полезность: Нет оценки
Не хочется создавать новой темы, ибо вопрос как раз по представлениям на Pl-Plus.
Написал запрос, но теперь оказалось нужным что бы пользователь мог ввести параметры для фильтра.
Собственно вопрос, имеется ли возможность в Pl-Plus представлениях пользователю ввести свои параметры? И если да, то как?
ggrey
Участник со стажем


Вступление в Клуб: 01.10.2007
СообщениеЧт Июн 02, 2011 17:00    Ответить с цитатой
Полезность: Нет оценки
Создаете операцию фильтр, в ней сохраняете нужные параметры в sys_context. В тексте PL+ читаете параметры из sys_context.
nOnAME
Участник со стажем


Вступление в Клуб: 25.01.2011
СообщениеПт Июн 03, 2011 16:10    Ответить с цитатой
Полезность: Нет оценки
ggrey пишет:
Создаете операцию фильтр, в ней сохраняете нужные параметры в sys_context. В тексте PL+ читаете параметры из sys_context.

Вот с этого места по подробнее, если не сложно...
Просто знаю что можно на запрос PL-Plus повесить операцию типа фильтр, но вот по поводу sys_context не понятно..
И еще вопрос: допустим я создал представление на PL-PLUS, могу ли я использовать это представление из другого представления на PL-PLUS? Если да, то как к нему обратится, через VW_CRIT_ не удается?
ggrey
Участник со стажем


Вступление в Клуб: 01.10.2007
СообщениеПт Июн 03, 2011 17:52    Ответить с цитатой
Полезность: 1
1. Создаем операцию фильтр. На вкладке операция по кнопке "Формула" ставим 1=1, без этого обычно не хочет запускать операцию фильтр.
2. В теле операции пишем, например:
Код:
executor.set_context('ИМЯ_ПЕРЕМЕННОЙ', to_char(P_DATE_BEG, 'DD/MM/YYYY'));

Не забываем поставить на последней закладке операции чек-бокс "Расширенный синтаксис", иначе не увидит пакет executor.
3. В тексте представления можно обратиться к контексту следующим образом:
Код:
to_date(sys_context(user_context,'ИМЯ_ПЕРЕМЕННОЙ'), 'DD/MM/YYYY')


Обратиться к другому представлению можно через модификатор %rowtype, т.е. КОРОТКОЕ_ИМЯ_ПРЕДСТАВЛЕНИЯ%rowtype
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПн Июн 06, 2011 09:25    Ответить с цитатой
Полезность: Нет оценки
так же можно не "приседать" с контекстом, а напрямую в фильтре указать формулу отбора
_________________
всегда есть как минимум 2 выхода
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПн Июн 06, 2011 09:26    Ответить с цитатой
Полезность: Нет оценки
так же можно не "приседать" с контекстом, а напрямую в фильтре указать формулу отбора, которая будет отражена в скобках в условии "WHERE", если в навигаторе нажать кнопку "SQL".
_________________
всегда есть как минимум 2 выхода
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

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