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

Отбор недистрибутивных объектов системы

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы
Предыдущая тема :: Следующая тема  
Автор Сообщение
dbmaslov
Профи


Вступление в Клуб: 11.07.2007
СообщениеПт Окт 16, 2009 09:25   Отбор недистрибутивных объектов системы Ответить с цитатой
Полезность: Нет оценки
Коллеги, добрый день!
Кто нибудь пытался делать запрос который отбирал бы недистрибутивные операции / представления и прочие объекты?
Доступа в SQL Navigator временно отсутствует, поэтому провести исследования самостоятельно пока не могу.
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеПт Окт 16, 2009 10:35    Ответить с цитатой
Полезность: 2
Дима, привет!
Интересуют дистрибутивные объекты, созданные в пространстве имен согласно лицензионным соглашениям? Или вообще?
Если первое, то я делал так:
Код:
set pagesize 0
set feedback off
spool c:\temp\meth.pck
prompt VER2
prompt

select object_type||' '||class_id||' '||short_name
from (select 'METH' object_type,
             m.class_id,
             m.short_name,
             m.short_name short_name2,
             m.name,
             upper(m.user_created) user_created,
             upper(m.user_modified) user_modified,
             m.tag
      from methods m
      union all
      select 'CRIT' object_type,
             c.class_id,
             c.short_name,
             ltrim(ltrim(c.short_name,'VW_CRIT_'),'VW_RPT_') short_name2,
             c.name,
             'CRIT' user_created,
             'CRIT' user_modified,
             c.tag
      from criteria c)
where short_name2 like 'KOB%'
order by class_id,object_type,short_name;
spool off

Соответственно надо поменять префикс банка.
Только данный скрипт ТБП не выбирает.
dbmaslov
Профи


Вступление в Клуб: 11.07.2007
СообщениеПт Окт 16, 2009 12:19    Ответить с цитатой
Полезность: Нет оценки
Дима, привет!
На самом деле нужно отобрать те операции представления и прочие, которые не становятся серыми в администраторе словаря данных, когда входишь в режиме локальных доработок, по префиксу я сделал уже... просто есть опасение что есть операции и прочие объекты без префикса..... хотел их пошерстить.
Можно кончно запустить сравнение с эталоном ... но хочет в онлайне это смотреть.....
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеПт Окт 16, 2009 12:45    Ответить с цитатой
Полезность: 2
Т.е. надо отталкиваться от описания приложения. Правильно?
Тогда есть пакет opt_mgr, и в нем:
Код:
- Функции для проверок наличия элементов в установленных описаниях приложений
-- Если объект есть в списке элементов описания приложений возвращает '1', иначе возвращает '0'
function obj_licensed(p_type varchar2, p_class_id varchar2, p_short_name varchar2) return varchar2;

Попробуй. Только, наверное, если использовать эту функцию в запросе, то долго работать будет. Похоже, описание хранится только в формате LOB. Sad
dbmaslov
Профи


Вступление в Клуб: 11.07.2007
СообщениеПт Окт 16, 2009 14:34    Ответить с цитатой
Полезность: Нет оценки
Да так и есть..... спасибо буду писать как напишу расскажу как получилось.
Andry
Участник - экстремал


Вступление в Клуб: 14.01.2009
СообщениеПт Окт 15, 2010 14:13    Ответить с цитатой
Полезность: 1
dbmaslov пишет:
Да так и есть..... спасибо буду писать как напишу расскажу как получилось.

Как-то так:
Код:

type main is
select s(
s.object_type :Object_type,
s.class_id :Classid,
s.short_name :Short_name,
opt_mgr.obj_licensed(s.object_type,s.class_id,s.short_name) : licensed,
s.short_name2 :Short_name2,
s.name :name
)
in (select m( 'METHODS' : object_type,
             m.class_id : class_id,
             m.short_name :short_name,
             m.short_name :short_name2,
             m.name :name,
             upper(m.user_created) user_created,
             upper(m.user_modified) user_modified,
             m.tag )
      in methods%rowtype
      where not m.short_name like 'Z'
      union all
      select c('CRITERIA' : object_type,
             c.class_id : class_id,
             c.short_name :short_name,
             ltrim(ltrim(c.short_name,'VW_CRIT_'),'VW_RPT_') short_name2,
             c.name,
             'CRIT' user_created,
             'CRIT' user_modified,
             c.tag
      )
       in criteria%rowtype
      union all
      select cl('CLASSES':object_type,
             cl.id : class_id,
             cl.id :short_name,
             cl.id :short_name2,
             cl.name :name,
             'CLASSES' user_created,
             'CLASSES' user_modified,
             cl.tag
      )
      in classes%rowtype
)
--where S.short_name2 like '%SUM%'
order by s.class_id, s. object_type,s.short_name;

Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы Часовой пояс: GMT + 3
Страница 1 из 1

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