資料字典是 Oracle 儲存資料庫中繼資料的核心區域,記錄表的建立者、建立時間、所屬表空間、使用者權限等關鍵資訊。當開發或管理遇到問題時,查詢資料字典可快速掌握物件細節。
V$ 開頭。視圖由 SYS 用戶擁有,依權限可見範圍不同:
| 前綴 | 可見範圍 | 典型使用者 |
|---|---|---|
USER_* | 當前用戶擁有的物件 | 一般開發者 |
ALL_* | 當前用戶有權限存取的物件(不需擁有) | 開發者、分析師 |
DBA_* | 資料庫所有物件 | DBA、具 DBA 權限用戶 |
三者資料結構一致,僅可見範圍不同。無 DBA 權限無法查詢 DBA_* 視圖。
| 視圖名稱 | 主要用途 | 範例查詢 |
|---|---|---|
USER_USERS | 當前用戶帳戶資訊(用戶名、ID、狀態、預設表空間、建立時間) | SELECT * FROM USER_USERS; |
USER_TABLES | 當前用戶擁有的所有表資訊(表名、表空間、叢集等) | SELECT * FROM USER_TABLES; |
USER_OBJECTS | 所有物件資訊(表、視圖、程序、觸發器、封裝、索引、序列等) | SELECT OBJECT_TYPE, STATUS FROM USER_OBJECTS WHERE OBJECT_NAME = UPPER('package1'); |
USER_TAB_PRIVS | 當前用戶對所有表的權限資訊 | SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = UPPER('table1'); |
注意: 資料字典中物件名均為大寫,查詢時建議使用 UPPER() 確保匹配。
| 視圖 | 用途 | 備註 |
|---|---|---|
V$ACCESS | 顯示被鎖定的資料庫物件及存取該物件的會話 | 排查鎖定衝突 |
V$SESSION | 列出當前所有會話詳細資訊 | 欄位極多,可用 DESC V$SESSION 查看結構 |
V$ACTIVE_INSTANCE | RAC 環境下活動實例資訊 | 叢集部署必查 |
V$CONTEXT | 當前會話屬性(命名空間、屬性值) | 應用上下文診斷 |
善用資料字典能讓開發與管理人員快速掌握資料庫全貌,對效能調優、權限稽核、故障排查極具助益。建議平時多探索各視圖,累積實戰經驗。