ORACLE column_type_id与实际type的对应关系

最近开发的时候经常要针对数据库中的列类型对其值做不同处理,于是要根据抓到的type_id来判断。以下是从ORACLE一个standard view中抓取出来的对应关系的decode,未加处理,直接贴上,供参考。

1, DECODE (c.CHARSETFORM, 2, 'NVARCHAR2', 'VARCHAR2'),

2, DECODE (c.scale,

NULL, DECODE (c.precision#,

NULL, 'NUMBER',

'FLOAT'

),

'NUMBER'

),

8, 'LONG',

9, DECODE (c.CHARSETFORM, 2, 'NCHAR VARYING', 'VARCHAR'),

12, 'DATE',

23, 'RAW',

24, 'LONG RAW',

58, NVL2 (ac.synobj#, (SELECT o.NAME

FROM SYS.obj$ o

WHERE o.obj# = ac.synobj#), ot.NAME),

69, 'ROWID',

96, DECODE (c.CHARSETFORM, 2, 'NCHAR', 'CHAR'),

105, 'MLSLABEL',

106, 'MLSLABEL',

111, NVL2 (ac.synobj#, (SELECT o.NAME

FROM SYS.obj$ o

WHERE o.obj# = ac.synobj#), ot.NAME),

112, DECODE (c.CHARSETFORM, 2, 'NCLOB', 'CLOB'),

113, 'BLOB',

114, 'BFILE',

115, 'CFILE',

121, NVL2 (ac.synobj#, (SELECT o.NAME

FROM SYS.obj$ o

WHERE o.obj# = ac.synobj#), ot.NAME),

122, NVL2 (ac.synobj#, (SELECT o.NAME

FROM SYS.obj$ o

WHERE o.obj# = ac.synobj#), ot.NAME),

123, NVL2 (ac.synobj#, (SELECT o.NAME

FROM SYS.obj$ o

WHERE o.obj# = ac.synobj#), ot.NAME),

178, 'TIME(' || c.scale || ')',

179, 'TIME(' || c.scale || ')' || ' WITH TIME ZONE',

180, 'TIMESTAMP(' || c.scale || ')',

181, 'TIMESTAMP(' || c.scale || ')' || ' WITH TIME ZONE',

231, 'TIMESTAMP(' || c.scale || ')' || ' WITH LOCAL TIME ZONE',

182, 'INTERVAL YEAR(' || c.precision# || ') TO MONTH',

183, 'INTERVAL DAY('

|| c.precision#

|| ') TO SECOND('

|| c.scale

|| ')',

208, 'UROWID',

'UNDEFINED')

         

            成长

       /      |     \

    学习   总结   分享

QQ交流群:122230156

原文地址:https://www.cnblogs.com/benio/p/2077322.html