oracle number整数,Oracle number类型的语法和用法
大家好,又见面了,我是你们的朋友全栈君。
Oracle number类型的语法很简单,就是:
number(p,s)
p,s都是可选的,假如都不填,p默认为38,s默认为-48~127。
1. 精度(precision),或总位数。默认情况下,精度为38位,取值范围是1~38之间。也可以用字符*表示38。
2.
小数位置(scale),或小数点右边的位数。小数位数的合法值为-48~127,其默认值取决于是否指定了精度。如果没有知道精度,小数位数则默认有最大的取值区间。如果指定了精度,小数位数默认为0(小数点右边一位都没有)。例如,定义为NUMBER的列会存储浮点数(有小数),而NUMBER(38)只存储整数数据(没有小数),因为在第二种情况下小数位数默认为0.
如下SQL语句:
create table t ( msg varchar2(12.), num_col number(5,2) );
insert into t (msg,num_col) values ( ‘123.456’, 123.456
);//执行成功,保存的是123.46
insert into t (msg,num_col) values ( ‘1234’, 1234
);//执行失败,要保留2位小数,那么整数位最多3位,现在是4位。
如果scale是负数怎么样,表示左边整数位舍入几位:
create table t ( msg varchar2(12.), num_col number(5,-2) );
insert into t (msg,num_col) values ( ‘123.45’, 123.45
);//执行成功,保存的是100
insert into t (msg,num_col) values ( ‘123.456’, 123.456
);//执行成功,保存的是100
其他数据类型:
1. NUMERIC(p,s):完全映射至NUMBER(p,s)。如果p未指定,则默认为38.
2. DECIMAL(p,s)或DEC(p,s):完全映射至NUMBER(p,s)。如果p为指定,则默认为38.
3. INTEGER或INT:完全映射至NUMBER(38)类型。
4. SMALLINT:完全映射至NUMBER(38)类型。
5. FLOAT(b):映射至NUMBER类型。
6. DOUBLE PRECISION:映射至NUMBER类型。
7. REAL:映射至NUMBER类型。
性能考虑:
一般而言,Oracle NUMBER类型对大多数应用来讲都是最佳的选择。不过,这个类型会带来一些性能影响。Oracle
NUMBER类型是一种软件数据类型,在Oracle软件本身中实现。我们不能使用固有硬件操作将两个NUMBER类型相加,这要在软件中模拟。不过,浮点数没有这种实现。将两个浮点数相加时,Oracle会使用硬件来执行运算。
换而言之,将一些列的number列相加,没有将一系列float列相加来得快。因为float列的精度低很多,一般是6~12位。
比如:select sum(ln(cast( num_type as binary_double ) )) from t
比:select sum(ln(cast( num_type) )) from t 要快很多。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163932.html原文链接:https://javaforall.cn
相关文章
- 解决方案:运用Oracle数据库表迁移(oracle数据库表迁移)
- 解决Oracle表不走索引问题(oracle表不走索引)
- 去天数Oracle日期减去N天数的实现方法(oracle日期减)
- Oracle数据库连接配置指南(oracle数据连接配置)
- Oracle触发器的4种类型(oracle触发器类型)
- 深入了解Oracle数据库触发器类型(oracle触发器类型)
- Oracle数据库触发器:种类与功能(oracle触发器类型)
- 学习Oracle数据库中的触发器类型(oracle触发器类型)
- 深入了解Oracle数据库触发器类型(oracle触发器类型)
- 掌握Oracle触发器类型,提升数据库性能(oracle触发器类型)
- 深入了解Oracle触发器的类型(oracle触发器类型)
- 深入了解Oracle触发器的类型(oracle触发器类型)
- 深入浅出:了解Oracle的触发器类型(oracle触发器类型)
- 深入解析:Oracle数据库触发器类型(oracle触发器类型)
- 灵活运用 Oracle 触发器类型实现更多功能(oracle触发器类型)
- 利用Oracle触发器实现数据库自动处理(oracle触发器类型)
- 利用Oracle触发器类型实现数据库自动化管理(oracle触发器类型)
- 特点分析Oracle触发器类型的特性及用途(oracle触发器类型)
- 深入了解Oracle触发器类型(oracle触发器类型)
- 初探Oracle触发器类型及其用途(oracle触发器类型)
- Oracle触发器类型探究(oracle触发器类型)
- 探索Oracle 触发器的不同类型(oracle触发器类型)
- 分析Oracle触发器类型及其应用(oracle触发器类型)
- 精通Oracle数据库触发器:深入了解各类触发器(oracle触发器类型)
- 探索Oracle数据库中的视图种类(oracle视图种类)
- 探讨Oracle访问控制的重要性和实现方式(oracle访问控制)
- Oracle数据库中的日期类型及应用(oracle关于日期类型)
- Oracle数据库中的国家地址信息表研究(oracle全国地址表)
- 如何使用C语言操作Oracle数据库(c oracle数据连接)
- 01741 Oracle 革新企业IT环境的重要技术(01741 oracle)
- 通从Oracle初学者到高手一次性攻克全局(oracle从入门到精)
- Oracle事务状态究竟是什么(oracle事务状态不明)
- Oracle中安全的提交和回滚技术(oracle中提交回滚)
- 函数利用Oracle中的日期函数进行数据处理(oracle中带的日期)
- Oracle中小数类型的知识拓展(oracle中小数的类型)
- Oracle 中两列数据相除的方法(oracle 两列相除)