1>.NUMBER类型细讲:
Oracle number datatype 语法:NUMBER[(precision [, scale])]
简称:precision --> p
scale --> s
NUMBER(p, s)
范围: 1 <= p <=38, -84 <= s <= 127
保存数据范围:-1.0e-130 <= number value < 1.0e+126
保存在机器内部的范围: 1 ~ 22 bytes
有效为:从左边第一个不为0的数算起的位数。
s的情况:
s > 0
精确到小数点右边s位,并四舍五入。然后检验有效位是否 <= p。
s < 0
精确到小数点左边s位,并四舍五入。然后检验有效位是否 <= p + |s|。
s = 0
此时NUMBER表示整数。
eg:
Actual Data Specified As Stored As
----------------------------------------
123.89 NUMBER 123.89
123.89 NUMBER(3) 124
123.89 NUMBER(6,2) 123.89
123.89 NUMBER(6,1) 123.9
123.89 NUMBER(4,2) exceeds precision (有效位为5, 5 > 4)
123.89 NUMBER(6,-2) 100
.01234 NUMBER(4,5) .01234 (有效位为4)
.00012 NUMBER(4,5) .00012
.000127 NUMBER(4,5) .00013
.0000012 NUMBER(2,7) .0000012
.00000123 NUMBER(2,7) .0000012
1.2e-4 NUMBER(2,5) 0.00012
1.2e-5 NUMBER(2,5) 0.00001
123.2564 NUMBER 123.2564
1234.9876 NUMBER(6,2) 1234.99
12345.12345 NUMBER(6,2) Error (有效位为5+2 > 6)
1234.9876 NUMBER(6) 1235 (s没有表示s=0)
12345.345 NUMBER(5,-2) 12300
1234567 NUMBER(5,-2) 1234600
12345678 NUMBER(5,-2) Error (有效位为8 > 7)
123456789 NUMBER(5,-4) 123460000
1234567890 NUMBER(5,-4) Error (有效位为10 > 9)
12345.58 NUMBER(*, 1) 12345.6
0.1 NUMBER(4,5) Error (0.10000, 有效位为5 > 4)
0.01234567 NUMBER(4,5) 0.01235
0.09999 NUMBER(4,5) 0.09999
number 类型数据列有效位数的计算:
1.s>=0,有效位数:p
2.s<0,有效位数:p+|s|
来源:http://www.cublog.cn/u/19782/showart_207809.html
原文:http://blog.itpub.net/post/26/3796
在这里谢谢任鹏帅(http://hi.csdn.net/ks_reny)提供的帮助!
分享到:
相关推荐
### Oracle 数据类型之 Number #### 一、概述 在Oracle数据库中,`NUMBER`类型是一种极为重要的数值数据类型,主要用于存储各种数值数据。随着Oracle版本的发展,为了更好地满足用户需求和提升性能,Oracle在其...
1. **数值类型**:int、decimal、long、short等对应Oracle的NUMBER,bool对应PL/SQL的BOOLEAN。 2. **字符串类型**:string对应Oracle的VARCHAR2或CHAR,DateTimeOffset对应TIMESTAMP WITH TIME ZONE。 3. **日期/...
1. 定义一个表类型,例如`CREATE TYPE MyTableType AS TABLE OF NUMBER;` 2. 声明并初始化一个表变量,如`DECLARE myVar MyTableType := MyTableType(NULL, NULL);` 3. 插入数据到表变量,例如`myVar.EXTEND; myVar...
- `bit`在SQL Server中没有直接对应的Oracle数据类型,但可以近似用单字节的`NUMBER(1)`表示。 - `datetime`和`smalldatetime`在SQL Server中对应Oracle的`DATE`,表示日期和时间。 - `decimal`和`numeric`在SQL ...
Oracle数据库支持多种数据类型,如数值型(NUMBER、INTEGER、BINARY_INTEGER等)、字符型(VARCHAR2、CHAR、CLOB等)、日期时间型(DATE、TIMESTAMP等)以及二进制数据类型(RAW、BLOB等)。在某些情况下,当不同...
C#调用Oracle自定义类型存储过程,Oracle存储入参为type类型,对于不熟悉Oracle朋友,可以参考来调用。实现思路和正常调MSSQL一样,先建立连接,再定义一个IOracleCustomType的类,然后Oracle.DataAccess.dll的...
Oracle 中的 NUMBER 类型可以对应 DB2/400 中的多种类型,这种对应关系要依赖于 Oracle 中 number 将用于保存何种类型的数据,是整型还是带有小数位的实型数据。例如,Oracle 中的 NUMBER 类型可以对应 DB2/400 中的...
例如,如果你有一个NUMBER类型的字段,想将其转换为VARCHAR2类型,可以使用以下语句: ```sql SELECT CAST(column_name AS VARCHAR2(20)) FROM table_name; ``` 这里,`VARCHAR2(20)`指定了转换后的字符串长度。 2....
Oracle 中有多种数字类型,包括 number、integer 等。 * number(m,n):可变长的数值列,允许 0、正值及负值。m 是所有有效数字的位数,n 是小数点以后的位数。 number 类型的数字可以表示各种数字类型,包括整数...
NUMBER类型可以存储非常大的数值,并具有极高的精度,其存储格式复杂,根据数值的大小和精度自动调整存储空间。较小的整数类型如INTEGER和SMALLINT,实际上是NUMBER的子集,它们的存储方式类似,但范围有限。 日期...
在 Oracle 中,默认情况下,数字类型的数据显示格式为科学计数法,这会导致数字显示不正确,例如 select to_number('12345678912') from dual; 结果会显示为 1.2346E+10,而不是我们期望的 12345678912。这种情况在 ...
本文主要探讨的是Java与Oracle数据库之间数据类型的映射关系,特别是针对"Number"和"Date"类型。 首先,让我们关注Oracle中的"Number"类型。Oracle的"Number"是一种可以存储整数和浮点数的通用数值类型。它分为两种...
- `bigint`: 存储非常大的整数值,等同于Oracle中的`NUMBER`类型。 - `int`: 存储整数值,等同于Oracle中的`NUMBER`类型。 - `smallint`: 存储较小范围内的整数值,等同于Oracle中的`NUMBER`类型。 - `tinyint`:...
Oracle 数据类型是数据库管理系统Oracle中的核心元素,它们决定了如何存储和处理各种数据。在Oracle中,数据类型可以分为基本数据类型、对象数据类型和大型对象数据类型。以下是对Oracle主要数据类型的详细说明: 1...
例如,当你从数据库查询数据时,需要知道如何将 Oracle 的 `NUMBER` 类型转换为 Java 中的 `BigDecimal`,或者如何处理 `TIMESTAMP` 类型以考虑时区信息。理解这些细节将确保数据的准确性和应用程序的兼容性。
is_number(oracle函数判断字段是否合法数字)
NUMBER 类型的对应关系取决于 Oracle 中 NUMBER 类型的定义和所占用的存储空间。 四、LOB 类型 Oracle 中的 BLOB 类型可以对应 DB2 的 BLOB 类型,用于存储大型二进制数据。 Oracle 中的 CLOB 类型可以对应 DB2 的...
在Oracle中,我们有类似的数据类型,如NUMBER、VARCHAR2、DATE、CLOB等。值得注意的是,Oracle的DATE类型包含了日期和时间,而MySQL通常需要单独的DATE和TIME类型来处理日期和时间。 Java与数据库交互时,通常使用...