Data Dictionary 是 Oracle 核心中繼資料倉儲,隨資料庫建立而生、隨物件變動而更新,僅供查詢不可手工修改。掌握 DICTIONARY/DICT_COLUMNS 兩大索引視圖,即可快速定位任何中繼資料。
DICTIONARY (同義詞 DICT):所有字典表名稱與說明DICT_COLUMNS:所有字典表欄位名稱與說明SELECT * FROM dictionary WHERE INSTR(comments, 'index') > 0;
SELECT column_name, comments
FROM dict_columns
WHERE table_name = 'USER_INDEXES';
-- 當前用戶預設表空間
SELECT username, default_tablespace FROM user_users;
-- 當前用戶角色
SELECT * FROM user_role_privs;
-- 系統權限與物件權限
SELECT * FROM user_sys_privs;
SELECT * FROM user_tab_privs;
-- 所有表清單
SELECT * FROM user_tables;
-- 表名包含 LOG 的物件
SELECT object_name, object_id
FROM user_objects
WHERE INSTR(object_name, 'LOG') > 0;
-- 表建立時間
SELECT object_name, created
FROM user_objects
WHERE object_name = UPPER('&table_name');
-- 表大小 (MB)
SELECT SUM(bytes)/(1024*1024) AS "size(M)"
FROM user_segments
WHERE segment_name = UPPER('&table_name');
-- 置於 Keep Pool 的表
SELECT table_name, cache
FROM user_tables
WHERE INSTR(cache, 'Y') > 0;
ALL_/DBA_ 前綴視圖跨 Schema 查詢 (需權限)DBMS_METADATA.GET_DDL 可直接產出物件建立腳本Data Dictionary 是「資料庫的說明書」,熟練查詢能大幅減少查閱官方文件的時間。