`
czwlucky
  • 浏览: 49917 次
  • 性别: Icon_minigender_1
  • 来自: 河南郑州
社区版块
存档分类
最新评论

查询ORACLE字段信息

阅读更多

先创建一张测试表:

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查询指定表的所有字段名和数据类型SQL

    ### Oracle查询指定表的所有字段名和数据类型SQL ...总之,通过上述SQL查询语句,我们可以高效地获取Oracle数据库中指定表的所有字段名和数据类型信息,这对于数据库管理和开发工作来说具有重要的意义。

    oracle数据库字段值自动加1

    Oracle 数据库字段值自动加 1 Oracle 数据库中,字段值自动加 1 是一个常见的需求,特别是在数据插入时需要自动生成唯一标识符的情况下。下面将详细介绍如何实现 Oracle 数据库字段值自动加 1。 首先,需要创建一...

    oracle 字段查询

    查询oracle数据库中单表中所有字段名

    解决mybatis使用char类型字段查询oracle数据库时结果返回null问题

    "解决mybatis使用char类型字段查询oracle数据库时结果返回null问题" 在使用mybatis框架对Oracle数据库进行查询操作时,如果使用char类型字段作为查询条件,可能会出现结果返回null的问题。这种情况下,需要对char...

    oracle查询blob字段照片(jpeg) 像素大小sql

    本篇文章将详细介绍如何通过SQL查询语句获取存储在Blob字段中的JPEG格式照片的像素大小。 ### 1. 了解Blob数据类型 在Oracle数据库中,Blob(Binary Large Object)类型用于存储大容量的二进制数据,比如图像、音频...

    oracle实现多字段匹配一个关键字查询

    在Oracle数据库中,有时我们需要对多个字段进行联合搜索,即多字段匹配一个关键字查询。本文将详细介绍两种在Oracle中实现这种查询的方法。 ### 一、使用管道符号(||)连接字段 这种方法通过使用Oracle中的字符串...

    oracle 查询表字段明细、字段注释、表注释

    Oracle 数据库管理系统提供了多种方式来查询表字段明细、字段注释、表注释等信息。本文将介绍如何使用 Oracle 的系统视图和系统表来查询表字段明细、字段注释、表注释等信息。 一、查询表字段明细 在 Oracle 中,...

    oracle字段类型转换的处理

    本文将深入探讨Oracle字段类型的转换方法,并提供一个实用的工具示例。 Oracle数据库支持多种数据类型,包括数值类型(如NUMBER、INTEGER、BINARY_FLOAT等)、字符类型(如VARCHAR2、CHAR、CLOB等)、日期时间类型...

    oracle字段去重

    ### Oracle字段去重详解 #### 一、Oracle字段去重概念与应用场景 在数据库操作过程中,数据表中可能会出现重复的数据记录,这不仅浪费存储空间,还可能导致数据分析时出现错误的结果。因此,去除重复记录是数据库...

    oracle unused字段后恢复出来

    oracle unused字段后恢复出来 说明,本来,unused是为了快速drop字段用的,但是是没有used或者什么reused命令恢复出来的,常规的办法只能drop这个字段后再添加,但是还是有办法恢复字段以及以前的内容的【毕竟空间...

    oracle实现多字段匹配一个关键字查询(本人亲测,没毛病)

    ### Oracle实现多字段匹配一个关键字查询 在Oracle数据库中,有时我们需要从多个字段中搜索包含特定关键字的数据。这种需求在很多场景下都非常常见,比如在CRM系统中搜索客户信息、在文档管理系统中查找文档等。...

    PowerDesigner字段与Oracle字段对应

    在数据库设计过程中,PowerDesigner 和 Oracle 之间的字段对应关系是至关重要的,因为它直接影响到数据的存储和处理。PowerDesigner 是一款强大的数据建模工具,它允许用户创建概念数据模型(CDM)和物理数据模型...

    oracle字段自增长

    这里插入了两条数据,并查询了表中的数据,结果显示 id 字段自动增长了。 在实际应用中,这种机制可以用来生成唯一的序号,例如订单号、流水号等。在 Java 编程过程中,开发者可以使用 JDBC 或者 ORM 框架来与 ...

    Oracle 增加修改删除字段

    在Oracle数据库中,我们经常需要对现有的表结构进行调整,比如增加新的字段、修改现有字段的属性或数据类型、删除不再使用的字段等。这些操作可以通过`ALTER TABLE`命令来完成。本文将详细介绍如何使用`ALTER TABLE`...

    如何:让Oracle表及字段显示为区分大小写

    虽然在Oracle中默认采用全部大写的形式可以简化查询过程,但对于那些希望保留标识符原始大小写状态的开发者来说,通过使用PowerDesigner或其他方法来创建表和字段,可以使Oracle中的表及字段显示为区分大小写的形式...

    oracle字段分隔为多行显示

    比如一个字段'11,22,22,33,44',一个查询语句显示成4行,就可以这样来实现。 11 22 22 33 44

    提取Oracle字段信息(包括字段名,数据类型,备注)并写入word表格

    例如,以下SQL查询可以获取特定表的所有字段信息: ```sql SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, REMARKS FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'YOUR_TABLE_NAME'; ``` 接下来,我们要...

    Oracle 数据表修改字段长度

    Oracle数据库中,表中已存在数据字段修改该字段的长度,如有疑问可沟通联系,当积分自动提升到很高的时候欢迎联系,会把积分调低。

    oracle表字段或是视图字段添加备注方法

    Oracle 是一个强大的关系数据库管理系统,提供了多种方式来添加备注信息到表字段或视图字段中。在本节中,我们将详细介绍如何使用 Oracle 的 Comment 机制来添加备注信息到表字段或视图字段中。 添加备注信息到表字...

Global site tag (gtag.js) - Google Analytics