Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пт Июн 22, 2012 15:46  Найти битые объекты БД |
|
Полезность: Нет оценки
|
Добрый день,
подскажите, плиз, есть ли в ЦФТ представление которое выведет все битые объекты БД.
На Sql запрос выглядит так:
Код: |
select OBJECT_NAME,OBJECT_TYPE from dba_objects where STATUS='INVALID';
|
И ещё хотелось бы каким то образом видеть Ломанные объекты в словаре ЦФТ, т.к. периодически бывает что в БД он нормальный, а в словаре битый. |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Пт Июн 22, 2012 17:17   |
|
Полезность: Нет оценки
|
У нас вьюха сделана. Показывает как состояние пакета, так и состояние операции.
Пример вьюхи
Код: | pragma pl_sql(true);
type main is
SELECT M(
::[RUNTIME].[STR].[GET_DIGITALL](M.id) : ID,
M.id : ID_MET,
m.SHORT_NAME : SHORT_NAME,
m.NAME : NAME,
M.CLASS_ID,
[LIB].CLASS_NAME(M.CLASS_ID) : CLASS_NAME,
m.[TAG],
m.[FLAGS],
m.PACKAGE_NAME : PACKAGE_NAME,
m.STATUS,
nvl(method.get_obj_status(m.PACKAGE_NAME,'PACKAGE BODY'),'INVALID') : STATUS,
nvl(method.get_obj_status(m.PACKAGE_NAME,'PACKAGE'),'INVALID') : STATUS1,
m.[USER_CREATED] : USER_CREATED,
m.[CREATED] : CREATED,
m.[USER_MODIFIED] : USER_MODIFIED,
m.[MODIFIED] : MODIFIED
) IN methods%rowtype
where
( nvl(method.get_obj_status(m.PACKAGE_NAME,'PACKAGE BODY'),'INVALID') not in('VALID')
or nvl(method.get_obj_status(m.PACKAGE_NAME,'PACKAGE'),'INVALID') not in('VALID')
or m.STATUS not in ('VALID')
)
and nvl(m.kernel,0) = 0
; |
по представлениям у нас отдельная вьюха _________________ всегда есть как минимум 2 выхода |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Сб Июн 23, 2012 07:44   |
|
Полезность: Нет оценки
|
Для невалидных представлений вьюха выглядит так:
Код: | type main is
select r(r.class_id:c_1,r.short_name:short_name,r.name:name,nvl(c.status,'NOT EXISTS'):status) in criteria%rowtype,(all_objects%rowtype:c)
where r.short_name=c.object_name(true)
and nvl(c.[STATUS],'NOT EXISTS')<>'VALID'
and r.[src_id] is null; |
|
|
 |
Vovidez Профи
Вступление в Клуб: 27.09.2007
|
Пн Июн 25, 2012 12:10  Re: Найти битые объекты БД |
|
Полезность: Нет оценки
|
yaffil пишет: | есть ли в ЦФТ представление которое выведет все битые объекты БД. |
В "ЦФТ-Банк" такого представления нет.
В аттаче скрипт, который выводит всевозможные невалидные объекты как метамодели, так и Oracle:
1. Вывод операций, имеющих проблемы с "Валидностью" (с пользователями)
2. Вывод операций, пакет которых имеет статус "INVALID"
3. Вывод представлений, имеющих проблемы с "Валидностью", но существующих в all_object
4. Вывод представлений для отчетов, имеющих проблемы с "Валидностью", но существующих в all_object
5. Вывод представлений, не существующих в user_object ("NOT EXIST")
6. Вывод фильтров представлений, имеющих проблемы с "Валидностью" (с пользователями)
7. Вывод индексов, не существующих в all_indexes ("NOT EXIST") |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пн Июн 25, 2012 12:26   |
|
Полезность: Нет оценки
|
Всем огромное спасибо, то что надо! |
|
 |
pas Профи
Вступление в Клуб: 20.11.2007
|
Пн Июн 25, 2012 14:10   |
|
Полезность: Нет оценки
|
Есть дистрибутив:
Банковские продукты -> ТМЦ. Импорт -> представления "Журнал "инвалидных" операций" и "Журнал "инвалидных" представлений"
Там же списочные операции "Компилировать операции", "Компилировать представления" |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Пн Фев 19, 2018 13:48   |
|
Полезность: Нет оценки
|
Сделал пару вьюх,
Alexsey пишет: | У нас вьюха сделана. Показывает как состояние
пакета, так и состояние операции.
Пример вьюхи
Код: | pragma pl_sql(true);
type main is
SELECT M(
::[RUNTIME].[STR].[GET_DIGITALL](M.id) : ID,
M.id : ID_MET,
m.SHORT_NAME : SHORT_NAME,
m.NAME : NAME,
M.CLASS_ID,
[LIB].CLASS_NAME(M.CLASS_ID) : CLASS_NAME,
m.[TAG],
m.[FLAGS],
m.PACKAGE_NAME : PACKAGE_NAME,
m.STATUS,
nvl(method.get_obj_status(m.PACKAGE_NAME,'PACKAGE BODY'),'INVALID') : STATUS,
nvl(method.get_obj_status(m.PACKAGE_NAME,'PACKAGE'),'INVALID') : STATUS1,
m.[USER_CREATED] : USER_CREATED,
m.[CREATED] : CREATED,
m.[USER_MODIFIED] : USER_MODIFIED,
m.[MODIFIED] : MODIFIED
) IN methods%rowtype
where
( nvl(method.get_obj_status(m.PACKAGE_NAME,'PACKAGE BODY'),'INVALID') not in('VALID')
or nvl(method.get_obj_status(m.PACKAGE_NAME,'PACKAGE'),'INVALID') not in('VALID')
or m.STATUS not in ('VALID')
)
and nvl(m.kernel,0) = 0
; |
по представлениям у нас отдельная вьюха |
на невалид операции нормально работает
devor пишет: | Для невалидных представлений вьюха выглядит так:
Код: | type main is
select r(r.class_id:c_1,r.short_name:short_name,r.name:name,nvl(c.status,'NOT EXISTS'):status) in criteria%rowtype,(all_objects%rowtype:c)
where r.short_name=c.object_name(true)
and nvl(c.[STATUS],'NOT EXISTS')<>'VALID'
and r.[src_id] is null; |
|
по представлениям виснет до перезагрузки навигатора... тут вроде и ломаться то нечему |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пн Фев 19, 2018 14:31   |
|
Полезность: Нет оценки
|
Матвеев Евгений пишет: | Сделал пару вьюх,
по представлениям виснет до перезагрузки навигатора... тут вроде и ломаться то нечему |
у меня быстро отрабатывает (в sql навигаторе) |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Пн Фев 19, 2018 14:41   |
|
Полезность: Нет оценки
|
Volod пишет: | Матвеев Евгений пишет: | Сделал пару вьюх,
по представлениям виснет до перезагрузки навигатора... тут вроде и ломаться то нечему |
у меня быстро отрабатывает (в sql навигаторе) |
в девелопере работает быстро
Код: |
/* Реальный текст */
SELECT
A1.Id ID, 'SYS_DIARYS' Class_Id,
a1.CLASS_ID C_1,
a1.SHORT_NAME C_2,
a1.NAME C_3,
NVL(b1.STATUS,'NOT EXISTS') C_4
from ALL_OBJECTS b1, CRITERIA a1
where a1.SHORT_NAME = b1.OBJECT_NAME(+) and NVL(b1.STATUS,'NOT EXISTS') <> 'VALID' and a1.SRC_ID is NULL
|
в АРМ Навигаторе не хочет ... почему то... |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пн Фев 19, 2018 15:10   |
|
Полезность: Нет оценки
|
А hint по умолчанию какой? |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|