Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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