Jump to content

Метаданные Oracle

База данных 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.

См. также

[ редактировать ]
  1. ^ «Руководство по внедрению и использованию модели коммуникационных данных» . docs.oracle.com . Проверено 5 июля 2022 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: abd88b8fe59a5fca440a8af18d7d864f__1687144440
URL1:https://arc.ask3.ru/arc/aa/ab/4f/abd88b8fe59a5fca440a8af18d7d864f.html
Заголовок, (Title) документа по адресу, URL1:
Oracle metadata - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)