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

задать параметры для представления VW_CRIT_DIARY_EXEC

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих
Предыдущая тема :: Следующая тема  
Автор Сообщение
kaa
Участник - экстремал


Вступление в Клуб: 20.01.2020
СообщениеЧт Июн 06, 2024 20:17   задать параметры для представления VW_CRIT_DIARY_EXEC Ответить с цитатой
Полезность: Нет оценки
ну и вообще как задаются параметры для представлений?
так то я скопировал - сделал локальное представление без параметров, но это дополнительное представление на схеме

делаю так:
Код:
   for(select s(s.[C_1] : DT, s.[C_2] : USR, s.[C_4]: OPNAME) in VW_CRIT_DIARY_EXEC%rowtype all
      --where trunc(s.[C_1]) = trunc(on_date)
      order by s.[C_1] desc
      )
   loop
      debug_pipe(' *** запуск операции: '||s.[USR]||', '||s.[DT]||', '||s.[OPNAME],0);
   end loop;   


и да - к именам столбцов нельзя обращаться - жаль ((
pabrz
Участник со стажем


Вступление в Клуб: 27.09.2022
СообщениеПт Июн 07, 2024 02:07    Ответить с цитатой
Полезность: Нет оценки
Не совсем понятен ваш вопрос. Опишите цель. Что в итоге получить хотите.
Эмиралька
Эксперт


Вступление в Клуб: 09.11.2015
СообщениеПт Июн 07, 2024 05:40   Re: задать параметры для представления VW_CRIT_DIARY_EXEC Ответить с цитатой
Полезность: 2
kaa пишет:
ну и вообще как задаются параметры для представлений?
так то я скопировал - сделал локальное представление без параметров, но это дополнительное представление на схеме

делаю так:
Код:
   for(select s(s.[C_1] : DT, s.[C_2] : USR, s.[C_4]: OPNAME) in VW_CRIT_DIARY_EXEC%rowtype all
      --where trunc(s.[C_1]) = trunc(on_date)
      order by s.[C_1] desc
      )
   loop
      debug_pipe(' *** запуск операции: '||s.[USR]||', '||s.[DT]||', '||s.[OPNAME],0);
   end loop;   


и да - к именам столбцов нельзя обращаться - жаль ((


Представления VW_CRIT предназначены для просмотра и не предназначены для использования в прикладном коде.
Не делайте так!
достаточно добавить одно поле в начало, и это поле станет C1 а то, что вы написали, перестанет работать.

Для использования в прикладном коде используются представления VW_RPT, они непопулярны, но у них имена столбцов именованы нормально, потому модификация представлений не так разрушительна.

По вашему вопросу - представления при необходимости параметризуются с помощью функций системного контекста. Вся остальная фильтрация данных осуществляется только фильтром запроса.
kaa
Участник - экстремал


Вступление в Клуб: 20.01.2020
СообщениеПт Июн 07, 2024 12:53    Ответить с цитатой
Полезность: Нет оценки
спасибо, понял.
перепишу тогда свое представление без параметров на VW_RPT, я их видел и пару раз делал для интеграции еще думал смысл таких представлений - если их проверять можно только в sql dev

pabrz
есть представление - которое проще перебрать чем запросом повторить
pabrz
Участник со стажем


Вступление в Клуб: 27.09.2022
СообщениеПн Июн 10, 2024 04:10    Ответить с цитатой
Полезность: 1
Учитывайте несколько опций.

Первую вам Эмиралька озвучила уже - если вы используете представление, как источник информации, то позаботьтесь о том, чтобы его не двигали. Обычно в таких случаях делается служебное представление, которое никому не дается для использования (чтобы не просили потом туда колонок добавить и не смущали этим никого) и его надо соответствующим образом пометить - чтобы не трогали, с отсылками на продукты и операции, где оно используется (а то через год сами не вспомните)

Второй момент в том, что если в представлении не чистые запросы, а используются функции для расчета колонок, то использовать его в качестве источника для DBI как будто бы нельзя. Поскольку это можно классифицировать, как надзапрос.
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеПн Июн 10, 2024 13:57    Ответить с цитатой
Полезность: 2
Еще проблема при использовании представления в запросе - не забывать давать доступ на это представление.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих Часовой пояс: GMT + 3
Страница 1 из 1

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