Представление для поиска невалидных операций
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Васильев Николай Профи
Вступление в Клуб: 29.06.2007
|
Ср Ноя 21, 2007 12:59  Представление для поиска невалидных операций |
|
Полезность: 4
|
Сделали давно у себя представление невалидных операций , очень удобно при накате.
Представление PL/PLUS.
В системе
Код: |
type main is
select U(
U.CLASS_ID : C_CLASS_ID,
U.SHORT_NAME : C_SHORT_NAME,
U.NAME : C_NAME,
U.STATUS : C_STATUS)
in ::METHODS%rowtype
where U.STATUS <> 'VALID'
order by U.CLASS_ID;
|
|
|
 |
dbmaslov Профи
Вступление в Клуб: 11.07.2007
|
Пт Ноя 23, 2007 10:28   |
|
Полезность: Нет оценки
|
мы тоже давно используем подобное представление.
также разработаны представления:
список журналируемых операций
список журналируемых реквизитов. _________________ Маслов Дмитрий |
|
 |
dbmaslov Профи
Вступление в Клуб: 11.07.2007
|
Сб Ноя 24, 2007 06:04   |
|
Полезность: 4
|
PL/PLUS ПРЕДСТАВЛЕНИЕ С ЖУРНАЛИРУЕМЫМИ ОПЕРАЦИЯМИ:
Код: | type main is select s(
s.CLASS_ID
,s.ID :ID
,s.SHORT_NAME :SHORT_NAME
,s.NAME :NAME
,s.CREATED :CREATED
,s.USER_CREATED :USER_CREATED
,s.MODIFIED :MODIFIED
,s.USER_MODIFIED : USER_MODIFIED
,s.STATUS : STATUS
,s.KERNEL : KERNEL
,s.PROPERTIES : PROPERTIES
,s.REPORT_OBJECT : REPORT_OBJECT
,s.REPORT_ON_PROC : REPORT_ON_PROC
,s.REPORT_TYPE : REPORT_TYPE
,s.FORM_ID : FORM_ID
,s.EXT_ID: EXT_ID
) in methods%rowtype
where s.properties like '%PARAMS Y%'
; |
_________________ Маслов Дмитрий |
|
 |
dbmaslov Профи
Вступление в Клуб: 11.07.2007
|
Сб Ноя 24, 2007 06:06   |
|
Полезность: 4
|
PL/PLUS ПРЕДСТАВЛЕНИЕ С ЖУРНАЛИРУЕМЫМИ РЕКВИЗИТАМИ:
Код: | type main is select s(
s.CLASS_ID:CLASS_ID,
s.qual:qual,
s.column_name:column_name,
s.table_name:table_name,
s.logging:logging,
s.deleted:deleted,
s.indexed:indexed,
s.self_class_id:self_class_id,
s.base_class_id:base_class_id,
s.def:def,
s.target_class_id:target_class_id,
s.static:static,
s.nullable:nullable,
s.mapped_from:mapped_from,
s.map_style:map_style,
s.editable:editable,
s.position:position,
s.host_type:host_type,
s.not_null:not_null,
s.sequenced:sequenced,
s.nt_table:nt_table,
s.not_cached:not_cached,
s.qual_pos:qual_pos,
s.flags:flags
) in class_tab_columns%rowtype
where s.logging != '0'
; |
_________________ Маслов Дмитрий |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Пн Ноя 26, 2007 10:30   |
|
Полезность: 4
|
dbmaslov пишет: | PL/PLUS ПРЕДСТАВЛЕНИЕ С ЖУРНАЛИРУЕМЫМИ ОПЕРАЦИЯМИ:
|
Добавлю, что приведенный выше текст выборки "журналируемых операций" соответсвует выборке операций, у которых включено журналирование параметров. А вот чтобы получить список операций с включенным в одно из положений свойством "Журналирование", необходимо написать примерно следующее:
Код: | s.properties like '%COMPILER %' and s.properties not like '%COMPILER 0%' |
|
|
 |
Гарфилд Участник
Вступление в Клуб: 20.09.2007
|
Пн Дек 03, 2007 12:01   |
|
Полезность: Нет оценки
|
Представления пиэль-плус - жуть, я делаю проще - в PL/SQL-девепопере или в жабе под ИБСом:
-- кол-во разных инвалидных объектов с группировкой по типу инвалидности
select status,count(1) from ibs.methods group by status; |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Пн Дек 03, 2007 12:14   |
|
Полезность: Нет оценки
|
Гарфилд пишет: | Представления пиэль-плус - жуть |
позвольте не согласиться!
Гарфилд пишет: | в PL/SQL-девепопере или в жабе под ИБСом... |
Предложу такой вариант:
Код: | select m.id, m.class_id, m.short_name, m.status, o.status package_status,m.modified
from methods m, user_objects o
where flags <> 'Z'
and kernel = '0'
and o.object_name(+) = m.package_name
and o.object_type(+) = 'PACKAGE BODY'
and (m.status <> 'VALID' or not exists
(select *
from user_objects o
where o.object_name = m.package_name
and o.object_type = 'PACKAGE BODY') or exists
(select *
from user_objects o
where o.object_name = m.package_name
and o.object_type = 'PACKAGE BODY'
and o.status != 'VALID')
or exists
(select * from user_objects o
where o.object_name = 'Z$U$' || m.id
and o.object_type = 'PACKAGE BODY'
and o.status!='VALID')
)
order by class_id, short_name |
|
|
 |
Гарфилд Участник
Вступление в Клуб: 20.09.2007
|
Пн Дек 03, 2007 12:23   |
|
Полезность: Нет оценки
|
2 timochev:
довольно много текста, на мой кошачий взгляд , вот так проще:
select m.class_id, m.short_name, m.name, m.user_created, m.status from ibs.methods m where status = 'INVALID' order by class_id |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Пн Дек 03, 2007 12:54   |
|
Полезность: Нет оценки
|
Гарфилд пишет: | 2 timochev:
довольно много текста, на мой кошачий взгляд |
Можно, конечно, стремиться к меньшему количеству символов в тексте, а можно к более объективной ситуации.
Так вот анализ состояния ораклового пакета очень хорошо дополняет картину. |
|
 |
Andry Участник - экстремал
Вступление в Клуб: 14.01.2009
|
Вт Июл 27, 2010 10:45  уточнение |
|
Полезность: Нет оценки
|
dbmaslov пишет: | PL/PLUS ПРЕДСТАВЛЕНИЕ С ЖУРНАЛИРУЕМЫМИ ОПЕРАЦИЯМИ:
|
Вместе с уточнениями от timochev получаем:
Код: |
type main is select s(
s.CLASS_ID
,s.ID :ID
,s.SHORT_NAME :SHORT_NAME
,s.NAME :NAME
,decode(instr(s.properties,'PARAMS Y'),0,'','Да')
,decode(substr(s.properties,instr(s.properties,'COMPILER ') + 9,1),
'0','Нет',
'1','Запуск',
'2','Запуск и завершение',
'3','Запуск в Авт.тран.',
'4','Запуск и завершение в Авт.тран.')
,s.CREATED :CREATED
,s.USER_CREATED :USER_CREATED
,s.MODIFIED :MODIFIED
,s.USER_MODIFIED : USER_MODIFIED
,s.STATUS : STATUS
,s.KERNEL : KERNEL
,s.PROPERTIES : PROPERTIES
,s.REPORT_OBJECT : REPORT_OBJECT
,s.REPORT_ON_PROC : REPORT_ON_PROC
,s.REPORT_TYPE : REPORT_TYPE
,s.FORM_ID : FORM_ID
,s.EXT_ID: EXT_ID
) in methods%rowtype
where s.properties like '%PARAMS Y%'
OR (s.properties like '%COMPILER %' and s.properties not like '%COMPILER 0%' );
|
|
|
 |
Andry Участник - экстремал
Вступление в Клуб: 14.01.2009
|
Вт Авг 03, 2010 09:23  ПРЕДСТАВЛЕНИЕ С ЖУРНАЛИРУЕМЫМИ РЕКВИЗИТАМИ |
|
Полезность: Нет оценки
|
dbmaslov пишет: | PL/PLUS ПРЕДСТАВЛЕНИЕ С ЖУРНАЛИРУЕМЫМИ РЕКВИЗИТАМИ:
|
Для наглядности туда нужно добавить колонку-расшифровку типа логгирования
Код: | decode(s.logging,
'1','Авт. |Не пустые',
'2','Прогр. |Не пустые',
'3','Авт. + Прогр. |Не пустые',
'5','Авт. |Новые ',
'6','Прогр. |Новые ',
'7','Авт. + Прогр. |Новые ',
'9','Авт. |Пустые ',
'A','Прогр. |Пустые ',
'B','Авт. + Прогр. |Пустые ',
'D','Авт. |Все ',
'E','Прогр. |Все ',
'F','Авт. + Прогр. |Все ',
'?|?'):DESCRIPTION, |
|
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|