Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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   |
|
Полезность: Нет оценки
|
Всем спасибо, уже успел все попробовать и ответить на свои вопросы  |
|
 |
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.
Все, спасибо, поиск по форуму творит чудеса.  |
|
 |
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 выхода |
|
 |
|