Loading AI tools
From Wikipedia, the free encyclopedia
Oracle Database provides information about all of the tables, views, columns, and procedures in a database. This information about information is known as metadata.[1] It is stored in two locations: data dictionary tables (accessed via built-in views) and a metadata registry.
This article needs additional citations for verification. (July 2022) |
Other relational database management systems support an ANSI-standard equivalent called information schema.
The total number of these views depends on the Oracle version, but is in a 1000 range.
The main built-in views accessing Oracle RDBMS data dictionary tables are few, and are as follows:
In addition there are equivalent views prefixed "USER_" which show only the objects owned by the current user (i.e. a more restricted view of metadata) and prefixed "DBA_" which show all objects in the database (i.e. an unrestricted global view of metadata for the database instance). Naturally the access to "DBA_" metadata views requires specific privileges.
Find all Tables that have PATTERN in the table name
SELECT Owner AS Schema_Name, Table_Name
FROM All_Tables
WHERE Table_Name LIKE '%PATTERN%'
ORDER BY Owner, Table_Name;
Find all tables that have at least one column that matches a specific PATTERN in the column name
SELECT Owner AS Schema_Name, Table_Name, Column_Name
FROM All_Tab_Columns
WHERE Column_Name LIKE '%PATTERN%'
ORDER BY 1,2,3;
Estimate a total number of rows in all tables containing a column name that matches PATTERN (this is SQL*Plus specific script)
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;
Note that NUM_ROWS records the number of rows which were in a table when (and if) it was last analyzed. This will most likely deviate from the actual number of rows currently in the table.
Find view columns
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;
Warning: This is incomplete with respect to multiple datatypes including char, varchar and timestamp and uses extremely old, deprecated dictionary views, back to oracle 5.
The underscore is a special SQL pattern match to a single character and should be escaped if you are in fact looking for an underscore character in the LIKE clause of a query.
Just add the following after a LIKE statement:
ESCAPE '_'
And then each literal underscore should be a double underscore: __
Example
LIKE '%__G' ESCAPE '_'
The Oracle product Oracle Enterprise Metadata Manager (EMM) is an ISO/IEC 11179 compatible metadata registry. It stores administered metadata in a consistent format that can be used for metadata publishing. In January 2006, EMM was available only through Oracle consulting services.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.