靜態數據字典中的視圖前綴包括USER_*、ALL_*、DBA_*。
1、USER_*
該視圖存儲了關于當前用戶所擁有的對象的信息(即所有在該用戶模式下的對象)。例如:USER USERS USER TABLES USER VIEWS。
2、ALL_*
該試圖存儲了當前用戶能夠訪問的對象的信息(與USER_*相比,ALL_*并不需要擁有該對象,只需要具有訪問該對象的權限即可)。例如:ALL USERS、ALL TABLES、ALL VIEWS。
3、DBA_*
該視圖存儲了數據庫中所有對象的信息(前提是當前用戶具有訪問這些數據庫的權限,一般來說必須具有管理員權限)。例如:DBA USERS、DBA TABLES、DBA VIEWS。
常用的靜態視圖介紹:
1、user_users視圖
主要描述當前用戶的信息,主要包括當前用戶名、賬戶id、賬戶狀態、表空間名、創建時間等。例如執行下列命令即可返回這些信息:select*from user_users。
2、user_tables視圖
主要描述當前用戶擁有的所有表的信息,主要包括表名、表空間名、簇名等。通過此視圖可以清楚了解當前用戶可以操作的表有哪些。執行命令為:select*from user_tables。
3、user_objects視圖
主要描述當前用戶擁有的所有對象的信息,對象包括表、視圖、存儲過程、觸發器、包、索引、序列等。該視圖比user_tables視圖更加全面。例如,需要獲取一個名為package1的對象類型和其狀態的信息,可以執行下面命令:這里需注意upper的使用,數據字典里的所有對象均為大寫形式,而PL/SQL里不是大小寫敏感的,所以在實際操作中一定要注意大小寫匹配。