使用 USER_TABLES 視圖可獲取當前用戶擁有的所有表信息。
SELECT table_name, tablespace_name, temporary
FROM user_tables
[WHERE table_name = '表名'];
欄位說明:
TABLE_NAME:表名 (VARCHAR2(30))TABLESPACE_NAME:所屬表空間 (VARCHAR2(30))TEMPORARY:是否臨時表 (Y/N,VARCHAR2(1))SQL> SELECT table_name, tablespace_name, temporary
2 FROM user_tables
3 WHERE table_name = 'TEST_TEMP';
TABLE_NAME TABLESPACE_NAME TEMPORARY
----------- ---------------- ---------
TEST_TEMP SDMP N
注意:WHERE 條件中的表名變量值必須大寫,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:精度(數字類型)DATA_SCALE:標度(數字類型)SQL> SELECT column_name, data_type, data_length, data_precision, data_scale
2 FROM user_tab_columns
3 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';
此視圖包含 OWNER 欄位,可識別表所屬 Schema。
SELECT * FROM user_tab_comments WHERE table_name = '...';SELECT * FROM user_col_comments WHERE table_name = '...';SELECT * FROM user_ind_columns WHERE table_name = '...';