先创建一张测试表:
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 ...总之,通过上述SQL查询语句,我们可以高效地获取Oracle数据库中指定表的所有字段名和数据类型信息,这对于数据库管理和开发工作来说具有重要的意义。
Oracle 数据库字段值自动加 1 Oracle 数据库中,字段值自动加 1 是一个常见的需求,特别是在数据插入时需要自动生成唯一标识符的情况下。下面将详细介绍如何实现 Oracle 数据库字段值自动加 1。 首先,需要创建一...
查询oracle数据库中单表中所有字段名
"解决mybatis使用char类型字段查询oracle数据库时结果返回null问题" 在使用mybatis框架对Oracle数据库进行查询操作时,如果使用char类型字段作为查询条件,可能会出现结果返回null的问题。这种情况下,需要对char...
本篇文章将详细介绍如何通过SQL查询语句获取存储在Blob字段中的JPEG格式照片的像素大小。 ### 1. 了解Blob数据类型 在Oracle数据库中,Blob(Binary Large Object)类型用于存储大容量的二进制数据,比如图像、音频...
在Oracle数据库中,有时我们需要对多个字段进行联合搜索,即多字段匹配一个关键字查询。本文将详细介绍两种在Oracle中实现这种查询的方法。 ### 一、使用管道符号(||)连接字段 这种方法通过使用Oracle中的字符串...
Oracle 数据库管理系统提供了多种方式来查询表字段明细、字段注释、表注释等信息。本文将介绍如何使用 Oracle 的系统视图和系统表来查询表字段明细、字段注释、表注释等信息。 一、查询表字段明细 在 Oracle 中,...
本文将深入探讨Oracle字段类型的转换方法,并提供一个实用的工具示例。 Oracle数据库支持多种数据类型,包括数值类型(如NUMBER、INTEGER、BINARY_FLOAT等)、字符类型(如VARCHAR2、CHAR、CLOB等)、日期时间类型...
### Oracle字段去重详解 #### 一、Oracle字段去重概念与应用场景 在数据库操作过程中,数据表中可能会出现重复的数据记录,这不仅浪费存储空间,还可能导致数据分析时出现错误的结果。因此,去除重复记录是数据库...
oracle unused字段后恢复出来 说明,本来,unused是为了快速drop字段用的,但是是没有used或者什么reused命令恢复出来的,常规的办法只能drop这个字段后再添加,但是还是有办法恢复字段以及以前的内容的【毕竟空间...
### Oracle实现多字段匹配一个关键字查询 在Oracle数据库中,有时我们需要从多个字段中搜索包含特定关键字的数据。这种需求在很多场景下都非常常见,比如在CRM系统中搜索客户信息、在文档管理系统中查找文档等。...
在数据库设计过程中,PowerDesigner 和 Oracle 之间的字段对应关系是至关重要的,因为它直接影响到数据的存储和处理。PowerDesigner 是一款强大的数据建模工具,它允许用户创建概念数据模型(CDM)和物理数据模型...
这里插入了两条数据,并查询了表中的数据,结果显示 id 字段自动增长了。 在实际应用中,这种机制可以用来生成唯一的序号,例如订单号、流水号等。在 Java 编程过程中,开发者可以使用 JDBC 或者 ORM 框架来与 ...
在Oracle数据库中,我们经常需要对现有的表结构进行调整,比如增加新的字段、修改现有字段的属性或数据类型、删除不再使用的字段等。这些操作可以通过`ALTER TABLE`命令来完成。本文将详细介绍如何使用`ALTER TABLE`...
虽然在Oracle中默认采用全部大写的形式可以简化查询过程,但对于那些希望保留标识符原始大小写状态的开发者来说,通过使用PowerDesigner或其他方法来创建表和字段,可以使Oracle中的表及字段显示为区分大小写的形式...
比如一个字段'11,22,22,33,44',一个查询语句显示成4行,就可以这样来实现。 11 22 22 33 44
例如,以下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 的 Comment 机制来添加备注信息到表字段或视图字段中。 添加备注信息到表字...