首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 查詢表名與欄位名稱完整指南:USER_TABLES 與 USER_TAB_COLUMNS 實戰

     編輯:Oracle 資料庫基礎

查詢使用者表清單

透過 USER_TABLES 視圖取得當前使用者擁有的表資訊:

SELECT table_name, tablespace_name, temporary 
FROM user_tables 
[WHERE table_name = '表名'];

欄位說明

  • table_name:表名稱 (VARCHAR2(30))
  • tablespace_name:所屬表空間 (VARCHAR2(30))
  • temporary:是否為暫存表 (VARCHAR2(1),Y/N)

範例

SELECT table_name, tablespace_name, temporary 
FROM user_tables 
WHERE table_name = 'TEST_TEMP';
TABLE_NAME  TABLESPACE_NAME  TEMPORARY
----------- ---------------- ---------
TEST_TEMP   SDMP             N
注意: Oracle 表名預設儲存為大寫,查詢條件需使用大寫字串。

查詢表欄位定義

使用 USER_TAB_COLUMNS 取得欄位詳細屬性:

SELECT column_name, data_type, data_length, 
       data_precision, data_scale
FROM user_tab_columns
[WHERE table_name = '表名'];

欄位說明

  • column_name:欄位名稱 (VARCHAR2(30))
  • data_type:資料類型 (VARCHAR2(106))
  • data_length:長度 (NUMBER)
  • data_precision:精度 (NUMBER,適用 NUMBER 類型)
  • data_scale:小數位數 (NUMBER,適用 NUMBER 類型)

範例

SELECT column_name, data_type, data_length, 
       data_precision, data_scale
FROM user_tab_columns
WHERE table_name = 'TEST_TEMP';
COLUMN_NAME  DATA_TYPE   DATA_LENGTH  DATA_PRECISION  DATA_SCALE
------------ ----------- ------------ --------------- ----------
ID           NUMBER      22           0               
NAME         NVARCHAR2   20                                
SEX          CHAR        1                                   
GRADE        NVARCHAR2   10                                  

進階:跨 Schema 查詢

若需查詢其他使用者的表結構(需權限),使用 ALL_TAB_COLUMNS:

SELECT * FROM all_tab_columns WHERE table_name = 'TEST_TEMP';

實用技巧

  • 搭配 DESC 指令快速查看結構:DESC table_name
  • 查詢特定類型欄位:WHERE data_type = 'NUMBER'
  • 找出無註解的欄位:LEFT JOIN user_col_comments

掌握這些字典視圖查詢,能大幅提升開發與維護時的結構探索效率。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved