C#やASP.NETをはじめとするプログラミング技術日記を綴っていきます。
Categories
Archives
メールマガジン
【Oracle】フィールド一覧の取得
Oracleで、フィールド一覧を取得する方法です。
TABLE、VIEWが対象になります。
ストアドはソースが取得できるのですが、パラメータ情報の取得方法は無さそうです。
面倒くさいけど、地道に解析するしか無さそうです。
「:TABLE_NAME」は、バインド変数なので、対象としたいテーブル名を入れてください。
DATA_PRECISION、DATA_SCALE の2つを組み合わせると、NUMBER型の桁数を求めることができます。
NUMBER型の場合は、常にFIELD_SIZE = 22で返ってくるので、注意してください。
SELECT
A.COLUMN_NAME AS FIELD_NAME,
A.DATA_TYPE AS FIELD_TYPE,
A.DATA_LENGTH AS FIELD_SIZE,
DECODE(C.POSITION, NULL, 0, 1) AS IS_PK,
A.NULLABLE,
A.DATA_PRECISION,
A.DATA_SCALE
FROM
USER_TAB_COLUMNS A
LEFT OUTER JOIN USER_CONSTRAINTS B ON A.TABLE_NAME = B.TABLE_NAME AND B.CONSTRAINT_TYPE = 'P'
LEFT OUTER JOIN USER_CONS_COLUMNS C ON B.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND A.COLUMN_NAME = C.COLUMN_NAME
WHERE
A.TABLE_NAME = :TABLE_NAME
ORDER BY
A.TABLE_NAME,
A.COLUMN_ID
このエントリーのトラックバックURL:
http://magicbox.sakura.ne.jp/mt/mt-tb.cgi/494