数据库版本:
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
SQL> create table t(id number(20));
Table created.
SQL> insert into t(id) values(12345678901234567890);
1 row created.
SQL> insert into t(id) values(1234567890);
1 row created.
SQL> select * from t;
ID
----------
1.2346E+19
1234567890
可以看到在SQL*Plus下,小于等于10位的精度显示的是很直观的形式,大于10位精度的则显示为科学计数的形式。
SQL> select * from t where id=12345678901234567890;
ID
----------
1.2346E+19
SQL> select * from t where id=1234567890;
ID
----------
1234567890
数据都可以正确检索,说明数值的存储没有任何问题,应该只是显示的问题了。
SQL> show numwidth
numwidth 10
这就是为什么小于等于10位不会被显示为科学计数形式的原因了,知道原因了,我们把其设置改长一点:
SQL> set numwidth 20
SQL> select * from t;
ID
--------------------
12345678901234567890
1234567890
已经可以完全显示所有的位数了。
在不改变numwidth设置的情况下,可以使用to_char函数完全显示所有位数:
SQL> set numwidth 10
SQL> select to_char(id) from t where id=12345678901234567890;
TO_CHAR(ID)
----------------------------------------
12345678901234567890
此外对于一些Oracle根据,如Toad和PL/SQL Developer也会存在这样的显示问题,默认情况下这两个工具的numwidth设置都是15,也给我们带来了一些不变,可以通过以下方法:
在toad中->view->option->data->display large number in scientific notation,不选择该选项即可
在pl/sql developer中->tools->preferences->sql windows->number fields tochar,选中该选项即可。
本文出自 “秀才” 博客,请务必保留此出处http://cau99.blog.51cto.com/1855224/362721
分享到:
相关推荐
"ORACLE中科学计数法显示问题的解决" 在 Oracle 中,科学计数法显示问题是一个常见的问题,特别是在 PLSQL 中显示超长数字的时候,会出现科学计数法的显示格式。本文档将为解决这个问题提供解决方法。 在 Oracle ...
特别是在Oracle数据库中,当涉及到17位以上的数字时,可能会出现一个问题:这些大数在查询结果中会以科学计数法的形式显示,而不是常规的数字格式。这不仅会影响数据的可读性,也可能导致后续的数据处理出现错误。...
在Oracle中,Number型数值的存储和转换涉及到一系列内部算法,这些算法确保了数值的精确存储和计算。 1. **Number型数值存储机制**: Oracle将Number型数值以二进制形式存储,包括一个符号位、一个指数部分和有效...
- **Number 类型**:作为Oracle的内置数据类型之一,`NUMBER`类型在Oracle早期版本中几乎是唯一可用的数值类型。在Oracle 9i R2及之前的版本中,主要支持的是`NUMBER`类型来存储数值数据。 - **新数值类型**:自...
可以使用`TRANSLATE`函数将所有可能的数字字符(包括小数点、正负号和科学计数法中的“E”或“e”)替换为固定的字符,然后比较替换后字符串的大小,以此来判断原字符串是否可以转换为数字。 **步骤**: 1. **定义...
is_number(oracle函数判断字段是否合法数字)
ORACLE数据库中文显示乱码问题的解决,系统中ORACLE数据库在安装后不能正确显示中文,而是显示为'???'等此类乱码。他人总结分析的内容,可以参考下。
在Oracle数据库环境中,有时我们需要将存储为字符串的数据转换为数值类型以便进行数学运算或进一步的数据分析。这在处理财务数据、统计分析等场景中非常常见。本文将详细介绍如何在Oracle中将字符串转换为Number类型...
在Oracle数据库中,进行金额数字到大写汉字的转换是一个常见的需求,特别是在处理财务数据时。Oracle提供了一些内置函数和自定义方法来实现这个功能。本文将深入探讨如何在Oracle中进行这种转换,并以PSQL...
在Oracle数据库中,时间间隔型数据(INTERVAL)的引入极大地增强了对时间处理的灵活性和准确性。在Oracle 9i之前,处理时间间隔通常需要依赖于DATE类型,并将时间间隔转换为秒数存储在NUMBER列中,这在进行时间计算...
Oracle 函数大全是对 Oracle 数据库中各种函数的总结和分类,包括分析函数、聚合函数、转换函数、日期型函数、字符型函数、数值型函数和其他函数等。 一、分析函数 Oracle 分析函数是 Oracle 数据库中的一种强大...
总之,`ROW_NUMBER() OVER()`是Oracle数据库中进行数据处理和分析的重要工具,它可以为数据提供有序的标识,便于进行排名、分组和筛选等操作,从而满足各种复杂的查询需求。在实际工作中,掌握这一功能能显著提升SQL...
在这个"Oracle函数大全中文"资源中,包含了对Oracle数据库中各种函数的详细解释,这些函数涵盖了数值型、字符型、日期型、转换、聚组以及分析等多个方面。下面我们将逐一深入探讨这些重要的知识点。 1. 数值型函数...
在 Oracle 中,可以使用 To_number(Integer()) 将字符型数据转化为数值型,而在 DB2 中可以使用 Decimal()。 四、系统日期 在 Oracle 中,系统日期可以使用 Sysdate 获取当前日期和时间,而在 DB2 中可以使用 ...
本资源“oracle函数大全(chm格式分类显示)”详细介绍了Oracle中的主要函数类别,帮助用户更好地理解和运用这些功能。 1. **数值型函数**: Oracle提供了多种数值处理函数,如`ROUND()`用于四舍五入,`TRUNC()`用于...
- `smallint`: 存储较小范围内的整数值,等同于Oracle中的`NUMBER`类型。 - `tinyint`: 存储非常小的整数值,等同于Oracle中的`NUMBER`类型。 - **Oracle**: - `NUMBER`: 用于表示整数,其具体的大小取决于实际...
在Oracle数据库中,`NUMBER`数据类型是一种广泛使用的数据类型,它可以存储整数和浮点数,具有极大的数值范围和精度。在这个特定的场景中,我们关注的是将Oracle `NUMBER`数据类型的常用操作封装到一个名为`ZL_...
13. **numeric**: 类似于`decimal`,用于存储精确的小数值,如`numeric(9)`,Oracle中的对应类型为`NUMBER(18)`。 14. **nvarchar**: 可变长度的Unicode字符类型,如`nvarchar(50)`,Oracle中的对应类型为`NVARCHAR2...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其强大的功能和灵活性深受开发者的青睐。"Oracle函数大全(分类显示)"这个资源显然是为了帮助开发者更好地理解和使用Oracle中的各种函数。下面,我们将详细...