Thursday, July 5, 2012

Oracle のテーブル定義をSQLで取得

Oracle でテーブル定義を参照したいときは

sqlplus> DESCRIBE (テーブル名);

で確認できますが sqlplus でしか使えません。SQLでは SELECT クエリで USER_TAB_COLUMNS を参照します。

SELECT * FROM USER_TAB_COLUMNS
WHERE
    TABLE_NAME = (テーブル名)
ORDER BY
    COLUMN_ID

USER_TAB_COLUMNS は ALL_TAB_COLUMNS から OWNER 列 を抜いたものです。