Апр 202016
 

Разработчики зачастую народ беспокойный и суетливый. Иногда бывает, что они портят или удаляют пакет, замечают это не сразу, и потом просят меня восстановить его. В случае со строками в таблице помогает Flashback, но что делать с пакетами? Вариантов два. TSPITR - частично восстановить где-то на другом хосте базу (табличные пространства SYSTEM, SYSAUX, UNDO) и взять пакеты на полученной новой базе. Способ этот настолько трудоёмкий, что даже говорить не хочется. Второй вариант - таки использовать Flashback, но по-хитрому. Continue reading »

Сен 202011
 

В стандарте SQL есть удобная возможность поиска парных (в общем случае - множественных) значений.
Например, попробуем найти все объекты, зависимые от синонимов пользователя cube: Continue reading »

Сен 022011
 

Если таблица секционирована, то её размер равен суммарному размеру всех сегментов её секций. Если при этом она содержит lob - поля, то к сумме размеров секций надо прибавить сумму размеров всех lob-сегментов, ассоциированных с этой таблицей.
Этот запрос сводит всё воедино: Continue reading »

Июн 102011
 

В содержимом представления DBA_SEGMENTS можно обнаружить строки с segment_type = LOBSEGMENT или LOB PARTITION. При этом в поле segment_name указано некое невразумительное, автоматически сгенерированное, значение, например, SYS_LOB0000474921C00036</code data-recalc-dims=.

????? ??????????, ? ????? ??????? ????????? ???? ???????, ??????? ??????:

SELECT * 
FROM dba_lobs d 
WHERE d.segment_name = 'SYS_LOB0000474921C00036" />';