Метаданыя Oracle
Oracle Database дае інфармацыю аб усіх табліцах, прадстаўленнях, слупках і працэдурах у базе даных. Гэтая інфармацыя аб інфармацыі вядомая як метаданыя[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: пошук табліц[правіць | правіць зыходнік]
Знайсці ўсе табліцы, якія маюць PATTERN у назве табліцы:
SELECT Owner AS Schema_Name, Table_Name
FROM All_Tables
WHERE Table_Name LIKE '%PATTERN%'
ORDER BY Owner, Table_Name;
Прыклад 2: пошук слупкоў[правіць | правіць зыходнік]
Знайсці ўсе табліцы, якія маюць хаця б адзін слупок, які адпавядае пэўнаму PATTERN у назве слупка:
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 запісвае колькасць радкоў, якія былі ў табліцы, калі яна была прааналізавана ў апошні раз. Гэта, хутчэй за ўсё, будзе адрознівацца ад фактычнай колькасці радкоў у табліцы.
Заўвагі[правіць | правіць зыходнік]
- ↑ Communications Data Model Implementation and Operations Guide (англ.). docs.oracle.com.