- 列出特定Schema下所有資料表及欄位型別、長度、精準位數、NULLABLE、預設值
SELECT
C.OWNER, C.TABLE_NAME, C.COLUMN_ID, C.COLUMN_NAME,
DATA_TYPE, DATA_LENGTH, DATA_PRECISION, DATA_DEFAULT,
NULLABLE, COMMENTS
FROM
ALL_TAB_COLUMNS C
JOIN ALL_TABLES T ON
C.OWNER = T.OWNER AND C.TABLE_NAME = T.TABLE_NAME
LEFT JOIN ALL_COL_COMMENTS R ON
C.OWNER = R.Owner AND
C.TABLE_NAME = R.TABLE_NAME AND
C.COLUMN_NAME = R.COLUMN_NAME
WHERE
C.OWNER = 'SCHEMA_NAME'
ORDER BY C.TABLE_NAME, C.COLUMN_ID
- 取得所有索引資料
SELECT
I.TABLE_OWNER, I.TABLE_NAME, I.INDEX_NAME, I.INDEX_TYPE,
I.UNIQUENESS, C.COLUMN_POSITION, C.COLUMN_NAME, C.DESCEND
FROM
ALL_INDEXES I JOIN ALL_IND_COLUMNS C
ON
I.TABLE_OWNER = C.TABLE_OWNER AND
I.INDEX_NAME = C.INDEX_NAME
WHERE
C.TABLE_OWNER = 'SCHEMA_NAME'
ORDER BY I.TABLE_NAME, I.INDEX_NAME, COLUMN_POSITION
- 取得主鍵值(Primary Key)欄位
SELECT
C.OWNER, C.TABLE_NAME, D.POSITION, D.COLUMN_NAME
FROM
ALL_CONSTRAINTS C JOIN ALL_CONS_COLUMNS D
ON
C.OWNER = D.OWNER AND
C.CONSTRAINT_NAME = D.CONSTRAINT_NAME
WHERE
C.CONSTRAINT_TYPE = 'P' AND C.OWNER = 'SCHEMA_NAME'
ORDER BY C.TABLE_NAME, D.POSITION