Derivable Documentation- Data Dictionary Fundamentals
Sometimes, if you are troubleshooting an issue and are under pressure, you need to quickly extract information from the data dictionary to help resolve the problem.
However, you may not know the exact name of a data dictionary view or its associated columns. If you are like me, it is impossible to keep all the data dictionary view names and column names in your head. Additionally, if you work with databases in different versions, it is sometimes difficult to keep track of which view may be available with a given release of Oracle.
I queried CDB_OBJECTS to get a count of the number of views for 23c:
SQL> select count(1) from dba_objects where object_name like ‘CDB%’;
COUNT(1) ———-
Books, posters, and Google searches can provide this information, but if you cannot find exactly what you are looking for, you can use the documentation contained in the data dictionary itself. You can query from four views, in particular:
CDB_OBJECTS DBA_OBJECTS DICTIONARY DICT_COLUMNS
If you know roughly the name of the view from which you want to select information, you can first query from DBA_OBJECTS. For instance, if you are troubleshooting an issue regarding materialized views and you cannot remember the exact names of the data dictionary views associated with materialized views, you can do this:
SQL> select object_name from dba_objects where object_name like ‘DBA_MV%’;
OBJECT_NAME
DBA_MVIEW_ANALYSIS
DBA_MVIEW_ANALYSIS
DBA_MVIEW_AGGREGATES
DBA_MVIEW_AGGREGATES
DBA_MVIEW_DETAIL_RELATIONS
DBA_MVIEW_DETAIL_RELATIONS
DBA_MVIEW_KEYS
DBA_MVIEW_KEYS
DBA_MVIEW_JOINS
DBA_MVREF_STATS
DBA_MVREF_STATS
38 rows selected.
That may be enough to get you in the ballpark or have a short list to look through. But often you need more information about each view. This is when the DICTIONARY and DICT_COLUMNS views can be invaluable. The DICTIONARY view stores the names of the data dictionary views. It has two columns:
Again, we can look at the dictionary for a description of the MV data dictionary views:
DBA_MVIEW_ANALYSIS Description of the materialized views accessible to dba
In this manner, you can quickly determine which view you need to access. If you want further information about the view, you can describe it; for example,
SQL> desc dba_mviews
If that does not give you enough information regarding the column names, you can query the DICT_COLUMNS view. This view provides comments about the columns of a data dictionary view; for example,
Owner of the materialized view Name of the materialized view
Name of the materialized view container table
The defining query that the materialized view instantiates
In this way, you can generate and view documentation regarding most data dictionary objects. The technique allows you to quickly identify appropriate views and the columns that may help you in a troubleshooting situation.