在 Oracle 中可以通過 DBA_TABLES
、ALL_TABLES
、USER_TABLES
等3個視圖表查詢關系表信息,它們之間的關系和區別為:
DBA_TABLES >= ALL_TABLES >= USER_TABLES
- DBA_TABLES:DBA擁有的或者可以訪問的所有關系表
- ALL_TABLES:某一用戶所擁有的或者可以訪問的所有關系表
- USER_TABLES:某一用戶所擁有的所有關系表
由上可知,當某一用戶本身就為數據庫 DBA 時,DBA_TABLES 與 ALL_TABLES 等價。
此規律可以類推至 Oracle 中其它類似名稱的視圖。
需要注意的是在 ORACLE 數據庫中大小寫是敏感的,而此三表中數據默認都是大寫的,所以在進行查詢的時候注意小寫的數據可能會造成數據無法查到。
因此需要進行轉換,例如:
select * from user_tables where table_name = upper('temp_cwh_city')