- 2007年12月30日 22:19
- データベース
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
- Newer: 【SQLServer Compact】テーブル一覧の取得
- Older: 【Oracle】テーブル一覧の取得
Comments:0
Trackbacks:0
- TrackBack URL for this entry
- http://magicbox.sakura.ne.jp/mt/mt-tb.cgi/494
- Listed below are links to weblogs that reference
- 【Oracle】フィールド一覧の取得 from 爆裂!C#野郎