В этой статье не процитировать какие - либо источники . ( июль 2012 г. ) ( Узнайте, как и когда удалить это сообщение-шаблон ) |
Oracle Database предоставляет информацию обо всех таблицах , представлениях , столбцах и процедурах в базе данных. Эта информация об информации известна как метаданные . Он хранится в двух местах: таблицы словаря данных (доступные через встроенные представления) и реестр метаданных.
Другие системы управления реляционными базами данных поддерживают эквивалент стандарта ANSI, называемый информационной схемой .
Представления для метаданных [ править ]
Общее количество этих представлений зависит от версии Oracle, но находится в диапазоне 1000.
Основных встроенных представлений для доступа к таблицам словаря данных Oracle RDBMS немного, и они следующие:
- ALL_OBJECTS - список всех объектов в текущей базе данных, доступных текущему пользователю;
- ALL_TABLES - список всех таблиц в текущей базе данных, доступных текущему пользователю;
- ALL_VIEWS - список всех представлений в текущей базе данных, доступных текущему пользователю;
- ALL_TAB_COLUMNS - список всех столбцов в базе данных, доступных текущему пользователю;
- ALL_ARGUMENTS - перечисляет аргументы функций и процедур, доступные текущему пользователю;
- ALL_ERRORS - перечисляет описания ошибок для всех хранимых объектов (представлений, процедур, функций, пакетов и тел пакетов), доступных текущему пользователю;
- ALL_OBJECT_SIZE - включен для обратной совместимости с Oracle версии 5;
- ALL_PROCEDURES - (начиная с Oracle 9 и далее) перечисляет все функции и процедуры (вместе со связанными свойствами), которые доступны текущему пользователю;
- ALL_SOURCE - описывает текстовый (т.е. PL / SQL) источник хранимых объектов, доступный текущему пользователю;
- ALL_TRIGGERS - список всех триггеров, доступных текущему пользователю.
Кроме того, существуют эквивалентные представления с префиксом «USER_», которые показывают только объекты, принадлежащие текущему пользователю (т. Е. Более ограниченное представление метаданных), и с префиксом «DBA_», которые показывают все объекты в базе данных (т. Е. Неограниченное глобальное представление метаданных для экземпляр базы данных). Естественно, для доступа к представлениям метаданных «DBA_» требуются определенные привилегии.
Пример 1: поиск таблиц [ править ]
Найдите все таблицы, в названии которых есть ШАБЛОН
ВЫБРАТЬ Владелец AS Schema_Name , Table_Name FROM All_Tables WHERE Table_Name LIKE '% PATTERN%' ORDER BY Owner , Table_Name ;
Пример 2: поиск столбцов [ править ]
Найдите все таблицы, в которых есть хотя бы один столбец, который соответствует определенному ШАБЛОНУ в имени столбца.
ВЫБРАТЬ Владелец AS Schema_Name , Table_Name , Column_Name FROM All_Tab_Columns ГДЕ Column_Name LIKE '% PATTERN%' ORDER BY 1 , 2 , 3 ;
Пример 3: подсчет строк столбцов [ править ]
Оцените общее количество строк во всех таблицах, содержащих имя столбца, соответствующее ШАБЛОНУ (это специальный скрипт SQL * Plus )
КОЛОННЫ МАНЕКЕН NOPRINT COMPUTE СУММА ИЗ NUM_ROWS ПО МАНЕКЕНУ ПЕРЕРЫВ НА МАНЕКЕН SELECT , NULL манекен , T . TABLE_NAME , C . COLUMN_NAME , Т . NUM_ROWS ИЗ ALL_TABLES Т , ALL_TAB_COLUMNS С ГДЕ T . TABLE_NAME = C . TABLE_NAME И С . Column_name LIKE '% ОБРАЗЕЦ%' и Т .ВЛАДЕЛЕЦ = С . ВЛАДЕЛЕЦ ЗАКАЗ НА Т . TABLE_NAME ;
Обратите внимание, что NUM_ROWS записывает количество строк, которые были в таблице, когда (и если) она последний раз анализировалась. Это, скорее всего, будет отличаться от фактического количества строк в таблице в данный момент.
Пример 4: поиск столбцов представления [ править ]
Найти столбцы просмотра
SELECT TABLE_NAME , имя_столбца , декодировать ( c . DATA_TYPE , 'VARCHAR2' , c . DATA_TYPE || '(' || c . DATA_LENGTH || ')' , 'NUMBER' , DECODE ( c . Data_precision , NULL , c . DATA_TYPE , 0 , c . DATA_TYPE , c . DATA_TYPE || '(' || c. data_precision || DECODE ( c . Data_scale , NULL , ')' , 0 , ')' , ',' || c . масштаб_данных || ')' )), c . DATA_TYPE ) data_type FROM cols c , obj o WHERE c . ТАБЛИЦА = o . имя_объекта И o . object_type = 'ПРОСМОТР' И c. table_name КАК '% PATTERN%' ORDER BY c . table_name , c . column_id ;
Предупреждение: это неполно в отношении нескольких типов данных, включая char, varchar и timestamp, и использует очень старые, устаревшие представления словаря, вплоть до oracle 5.
Использование подчеркивания в именах таблиц и столбцов [ править ]
Подчеркивание - это специальный шаблон SQL , соответствующий одному символу, и его следует экранировать, если вы действительно ищете символ подчеркивания в предложении LIKE запроса.
Просто добавьте следующее после оператора LIKE:
ПОБЕГ '_'
И затем каждое буквальное подчеркивание должно быть двойным подчеркиванием: __
Пример
КАК '% __ G' ESCAPE '_'
Реестр метаданных Oracle [ править ]
Продукт Oracle Oracle Enterprise Metadata Manager (EMM) - это реестр метаданных, совместимый с ISO / IEC 11179 . Он хранит администрируемые метаданные в согласованном формате, который можно использовать для публикации метаданных . В январе 2006 года EMM было доступно только через консалтинговые услуги Oracle.
См. Также [ править ]
- Информационная схема
- Метаданные
Внешние ссылки [ править ]
- статья о метаданных Oracle