Метаданные Oracle
Эта статья нуждается в дополнительных цитатах для проверки . ( июль 2022 г. ) |
База данных Oracle предоставляет информацию обо всех таблицах , представлениях , столбцах и процедурах в базе данных. Эта информация об информации известна как метаданные . [1] Он хранится в двух местах: таблицах словаря данных (доступ к которым осуществляется через встроенные представления) и реестре метаданных.
Другие системы управления реляционными базами данных поддерживают эквивалент стандарта 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: поиск таблиц
[ редактировать ]Найдите все таблицы, в названии которых есть ШАБЛОН.
SELECT Owner AS Schema_Name, Table_Name
FROM All_Tables
WHERE Table_Name LIKE '%PATTERN%'
ORDER BY Owner, Table_Name;
Пример 2: поиск столбцов
[ редактировать ]Найдите все таблицы, в которых есть хотя бы один столбец, соответствующий определенному ШАБЛОНУ в имени столбца.
SELECT Owner AS Schema_Name, Table_Name, Column_Name
FROM All_Tab_Columns
WHERE Column_Name LIKE '%PATTERN%'
ORDER BY 1,2,3;
Пример 3: подсчет строк столбцов
[ редактировать ]Оцените общее количество строк во всех таблицах, содержащих имя столбца, соответствующее PATTERN (это SQL*Plus специальный сценарий ).
COLUMN DUMMY NOPRINT
COMPUTE SUM OF NUM_ROWS ON DUMMY
BREAK ON DUMMY
SELECT
NULL DUMMY,
T.TABLE_NAME,
C.COLUMN_NAME,
T.NUM_ROWS
FROM
ALL_TABLES T,
ALL_TAB_COLUMNS C
WHERE
T.TABLE_NAME = C.TABLE_NAME
AND C.COLUMN_NAME LIKE '%PATTERN%'
AND T.OWNER = C.OWNER
ORDER BY T.TABLE_NAME;
Обратите внимание, что NUM_ROWS записывает количество строк, которые были в таблице, когда (и если) она анализировалась в последний раз. Скорее всего, это число будет отличаться от фактического количества строк в таблице, которое сейчас находится в таблице.
Пример 4: поиск столбцов представления
[ редактировать ]Найти столбцы представления
SELECT TABLE_NAME,
column_name,
decode(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.data_scale || ')')),
c.DATA_TYPE) data_type
FROM cols c, obj o
WHERE c.TABLE_NAME = o.object_name
AND o.object_type = 'VIEW'
AND c.table_name LIKE '%PATTERN%'
ORDER BY c.table_name, c.column_id;
Предупреждение: это неполно в отношении нескольких типов данных, включая char, varchar и timestamp, и использует очень старые, устаревшие словарные представления, начиная с oracle 5.
Использование подчеркивания в именах таблиц и столбцов.
[ редактировать ]Символ подчеркивания представляет собой специальный шаблон SQL , соответствующий одному символу, и его следует экранировать, если вы действительно ищете символ подчеркивания в предложении LIKE запроса.
Просто добавьте следующее после оператора LIKE:
ESCAPE '_'
И тогда каждое буквальное подчеркивание должно быть двойным подчеркиванием: __
Пример
LIKE '%__G' ESCAPE '_'
Реестр метаданных Oracle
[ редактировать ]Продукт Oracle Oracle Enterprise Metadata Manager (EMM) представляет собой стандартом ISO/IEC 11179 совместимый со реестр метаданных, . Он хранит администрируемые метаданные в согласованном формате, который можно использовать для публикации метаданных . В январе 2006 года EMM был доступен только через консультационные услуги Oracle.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Руководство по внедрению и использованию модели коммуникационных данных» . docs.oracle.com . Проверено 5 июля 2022 г.