oracle数据库数值类型
---恢复内容开始---
内容摘自网络
Oracle的数值类型有int,number,float,decimal,numberic等。
NUMBER类型
定义
定义格式NUMBER (precision,scale)
precision表示数字中的有效位(从左边第一个不为0的数算起,小数点和负号不计入有效位数),取值范围为【1-38】默认38。
scale表示精确到多少位,取值范围为【-84-127】,默认值为0。大于零时,表示数字精确到小数点右边的位数;小于零时,将把该数字取舍到小数点左边的指定位数,所以,NUMBER整数部分允许的长度为(precision- scale),无论scale是正数还是负数,并且,如果precision小于scale,表示存储的是没有整数的小数。
关于number的精度(p)和刻度(s)遵循以下规则:
1) 当一个数的整数部分的长度> p-s 时,Oracle就会报错
2) 当一个数的小数部分的长度> s 时,Oracle就会舍入。
3) 当s(scale)为负数时,Oracle就对小数点左边的s个数字进行舍入。
4) 当s > p 时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入
案例
|
实际值 |
数据类型 |
存储值 |
|
1234567.89 |
Number |
1234567.89 |
|
1234567.89 |
Number(8) |
1234567 |
|
1234567.89 |
Number(6) |
出错 |
|
1234567.89 |
Number(9,1) |
1234567.9 |
|
1234567.89 |
Number(9,3) |
出错 |
|
1234567.89 |
Number(7,2) |
出错 |
|
1234567.89 |
Number(5,-2) |
1234600 |
|
1234511.89 |
Number(5,-2) |
1234500 |
|
1234567.89 |
Number(5,-4) |
1230000 |
|
1234567.89 |
Number(*,1) |
1234567.9 |
|
0.012 |
Number(2,3) |
0.012 |
|
0.23 |
Number(2,3) |
出错 |
NUMBER类型的子类
decimal,numeric,int等都为SQL、DB2等数据库的数据类型,ORACLE为了兼容才将其引入;但实际上在ORACLE内部还是以NUMBER的形式将其存入,所以在集合关系上它们也都是number的子集。
int类型只能存储整数;
在oracle数据库建表的时候,decimal,numeric不带精度,oracle会自动把它处理成INTEGER;带精度,oracle会自动把它处理成number。
Oracle只用NUMBER(m,n)就可以表示任何复杂的数值数据。
---恢复内容结束---
oracle数据库数值类型的更多相关文章
- Oracle数据库字段类型说明
目前Oracle 数据库大概有26个字段类型,大体分为六类,分别是字符串类型.数字数据类型.日期时间数据类型.大型对象(LOB)数据类型.RAW和LONG RAW数据类型.ROWID和UROWID数据 ...
- Oracle 数据库字段类型使用说明
简介 目前Oracle 数据库大概有26个字段类型,大体分为六类,分别是字符串类型.数字数据类型.日期时间数据类型.大型对象(LOB)数据类型.RAW和LONG RAW数据类型.ROWID和UROWI ...
- oracle 数据库时间类型为字符串 时间范围大小查询
select * from invoicedetail t2 where t2.Memo is null and to_char(to_date(t2.PrintDate,'yyyy-MM-dd hh ...
- Oracle数据库时间类型悬疑案
这次遇到的问题小Alan其实一年半前做证券行业项目就已经遇到过,但是一直没有去思考是什么原因导致的这样的悬疑案,悬疑案是什么呢?其实很简单,我想有不少童鞋都有用到Oracle数据库,情形是这样子的,这 ...
- Oracle数据库date类型与Java中Date的联系与转化
以下是对Java中的日期对象与Oracle中的日期之间的区别与联系做点说明,以期对大家有所帮助.new Date():分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),就是系统当前 ...
- Mysql 数据库数值类型详解
MySQL 支持所有标准SQL 中的数值类型,其中包括严格数值类型(INTEGER.SMALLINT.DECIMAL 和NUMERIC),以及近似数值数据类型(FLOAT.REAL 和DOUBLE P ...
- 【记坑】Oracle数据库Date类型查询结果多出".0"的解决方法
oracle设置数据库某张表的字段类型为date,数据库存值为 2019-11-25 18:51:47 格式,但是从数据库查询出来之后格式为 String stopTime = map.get(&qu ...
- 修改oracle数据库字段类型,处理ORA-01439错误
修改表PTLOG的列TYPE的char(1)为varchar(2)类型? 在PTLOG 表新增一列 TYPE_2:ALTER TABLE PTLOG ADD TYPE_2 VARCHAR2(2) de ...
- oracle的数值数据类型和兼容细分类型
Oracle存储数值类型的数据不区分int .double .float 等类型,统一使用number(p,s)来存储. 基本类型为 NUMBER(P,S) P范围1到38 S 范围 -84 到 12 ...
随机推荐
- beginner’s mistake
PHP Advanced and Object-Oriented Programming 3rd Edition Related to modularity is abstraction: class ...
- PHP之PSR
PHP的PSR (PSR 称为PHP Standard Recommendations) PSR参考网址:http://www.php-fig.org/psr 在PHP中,有5个编码标准分类: ①.P ...
- PHP之null
null类型 特殊的null值表示一个变量没有值.null类型唯一可能的值是null. 在下列情况下一个变量被认为是null: ①.被赋值为null ②.尚未被赋值 ③被unset(). 语法 nul ...
- [daily] 主机间目录共享
1. 安装 nfs工具 [root@D128 j]# yum install nfs-utils 2. 修改配置文件: 1. 查看一下语法. [root@D128 j]# man exports 2 ...
- sparking water
1 2 It provides a way to initialize H2O services on each node in the Spark cluster and to access dat ...
- Altium Designer 绘图流程及快捷键
1.Shift+Ctrl+g 设置栅格捕捉大小 2.Q 切换单位 3.E+N +点击字体 改变字体大小 4.自动布线前需在Mechanical 层和keepout层添加一个边框 5.打过孔实现双面走线 ...
- 抽屉之Tornado实战(3)--注册
知识点应用:标签绑定事件,jQuery获取用户值-->AJAX发送数据-->后台路由系统-->业务逻辑处理-->ORM数据操作-->write返回-->AJAX回调 ...
- java web指定主页
正常情况下主页是在web.xml里面配置欢迎页面,可以加个过滤器重定向就可以: public void doFilter(ServletRequest req, ServletResponse res ...
- jquery键盘事件
场景:当我们遇到onclick按钮事件时需要按回车执行时就用到了键盘监听事件 例如:<button id="sign_in_button" class="btn b ...
- InnoDB体系架构
MySQL支持插件式存储引擎,常用的存储引擎则是MyISAM和InnoDB,通常在OLTP(Online Transaction Processing 在线事务处理)中,我们选择使用InnoDB,所以 ...