透過 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
若需查詢其他使用者的表結構(需權限),使用 ALL_TAB_COLUMNS:
SELECT * FROM all_tab_columns WHERE table_name = 'TEST_TEMP';
DESC 指令快速查看結構:DESC table_nameWHERE data_type = 'NUMBER'LEFT JOIN user_col_comments掌握這些字典視圖查詢,能大幅提升開發與維護時的結構探索效率。