先创建一张测试表:
CREATE TABLE ABC(
A NUMBER,
B NUMBER(22,8),
C NUMBER(8),
D NUMBER(22),
E NUMBER(38),
F INTEGER,
G DATE,
BL BLOB,
CL CLOB,
VAR VARCHAR2(30),
CHR CHAR,
VCHR VARCHAR(20),
NVCHR NVARCHAR2(33),
NCHR NCHAR(3),
TMP TIMESTAMP,
TMP2 TIMESTAMP(8),
BF BFILE,
R RAW(800),
--L LONG,
LR LONG RAW,
FL FLOAT,
FL2 FLOAT(36),
FL3 FLOAT(126),
DE DECIMAL,
DD DECIMAL(8,3)
);
查该表的字段信息:
SELECT A.TABLE_NAME,
A.COLUMN_NAME,
CASE
WHEN A.DATA_TYPE <> 'NUMBER' THEN
A.DATA_TYPE
ELSE
CASE
WHEN A.DATA_PRECISION IS NULL AND A.DATA_SCALE = 0 THEN
'INTEGER'
ELSE
'NUMBER'
END END ||CASE
WHEN DATA_TYPE = 'RAW' THEN
'(' || A.DATA_LENGTH || ')'
WHEN CHAR_LENGTH > 0 THEN
'(' || A.CHAR_LENGTH || ')'
WHEN A.DATA_TYPE NOT IN ('NUMBER','FLOAT') THEN
''
WHEN A.DATA_PRECISION IS NOT NULL AND
NVL(A.DATA_SCALE, 0) <> 0 THEN
'(' || A.DATA_PRECISION || ',' || A.DATA_SCALE || ')'
WHEN A.DATA_PRECISION IS NOT NULL AND
NVL(A.DATA_SCALE, 0) = 0 THEN
'(' || A.DATA_PRECISION || ')'
ELSE
''
END DATA_TYPE,
A.NULLABLE,
B.COMMENTS
FROM USER_TAB_COLS A, USER_COL_COMMENTS B
WHERE A.TABLE_NAME = B.TABLE_NAME(+)
AND A.COLUMN_NAME = B.COLUMN_NAME(+)
AND A.TABLE_NAME = 'ABC'
ORDER BY A.TABLE_NAME, A.COLUMN_ID;
目前测试没有问题,如果大家发现有不准确的字段表示,请给我留言指正. 非常感谢!
FLOAT虽然不常使用了,但还是要说一说,它默认长度是126, 而且只有DATA_PRECISION字段记录了该长度,DATA_LENGTH与NUMBER类型一样,都是22. 问题是,NUMBER类型,可以根据DATA_PRECISION和DATA_SCALE辨认是否为不带长度的定义(默认定义),但FLOAT却不会使用DATA_SCALE,因此也无法辨认. 所以我这里直接将默认长度也显示出来,观察了下PL/SQL Developer是把126长度的当做默认来处理了(也就是说只要长度为126就不显示该长度)
分享到:
相关推荐
查询oracle数据库中单表中所有字段名
Oracle查询指定表的所有字段名和数据类型SQL
oracle字段去重 以某一个字段去重 oracle字段去重 以某一个字段去重
oracle查询blob字段照片(jpeg) 像素大小sql
主要介绍了mybatis使用char类型字段查询oracle数据库时结果返回null问题的解决方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
oracle实现多字段匹配一个关键字查询的两种方法
往数据库中添加数据时,字段值自动加1: 1、创建表 2、创建序列 3、创建触发器
oracle unused字段后恢复出来 说明,本来,unused是为了快速drop字段用的,但是是没有used或者什么reused命令恢复出来的,常规的办法只能drop这个字段后再添加,但是还是有办法恢复字段以及以前的内容的【毕竟空间...
PowerDesigner字段与Oracle字段对应
oracle字段类型小结 CHAR固定长度字符串,最大长度2000,bytes VARCHAR2可变长度的字符串,最大长度4000,bytes,可做索引的最大长度749 NCHAR根据字符集而定的固定长度字符串,最大长度2000
没毛病,本人亲测oracle实现多字段匹配一个关键字查询
比如一个字段'11,22,22,33,44',一个查询语句显示成4行,就可以这样来实现。 11 22 22 33 44
Oracle使用 alter 增加 修改 删除 字段, 可以同时添加多个字段 创建 修改 添加表的约束
通过JAVA代码提取Oracle数据库字段信息(包括字段名,数据类型,备注)并写入word表格,提高编写数据库设计文档的效率
Oracle blob字段上传下载 Oracle blob字段上传下载Oracle blob字段上传下载 Oracle blob字段上传下载
oracle 查询表字段明细、字段注释、表注释
JDBC读写Oracle的CLOB字段
Oracle数据库中,表中已存在数据字段修改该字段的长度,如有疑问可沟通联系,当积分自动提升到很高的时候欢迎联系,会把积分调低。
Oracle LOB字段处理工具是一款简单的lob字段处理工具
javascript动态添加事件.doc VBA_Fun_操作xml.txt Vml数据图表.doc 文字循环滚动无缝连接特效.doc 怎么在oracle10g查询所有包含某字段的表名.doc