今天,在建表后插入语句时,报了这样的错误,对于这样的错误,搜集了一些资料,进行了总结如下: 建表语句:

1
2
3
4
5
6
7
8
9
create table pre_info(
pre_code varchar2(20) not null,
pre_name varchar2(20),
pre_num number(5),
pre_price_old number(5),pre_tax decimal(1,3),pre_price_net number(5,2),
pre_dep varchar2(20),pre_starttime_plan date,pre_overtime_plan date,
pre_starttime_actu date,pre_overtime_actu date,pre_overtime_cust varchar2(20),
pre_overtime_blo varchar2(1),pre_month varchar2(2),primary key(pre_code)
);
1
insert into pre_info values('2204','葡萄',100,280,1.32,180,'贸易','2017/11/28','2017/11/29','2017/11/29','2017/11/30','038765','0','11');

插入时报了如下错误:

改错后,小小总结如下:

(1) 在DECIMAL(a,b)的设置中,整数的位数不能大于(a-b),但小数位可以大于b,但会从大于b的有效位开始截断。

(2)Number(p, s) , 声明一个定点数 时, p(precision)为精度,s(scale)表示小数点右边的数字个数,精度最大值为38;Number(p)声明一个整数相当于Number(p, 0);Number 声明一个浮点数,其精度为38,要注意的是scale的值没有应用,也就是说scale的指不能简单的理解为0,或者其他的数。定点数的精度(p)和刻度(s)遵循以下规则:

1. 当一个数的整数部分的长度 > p-s 时,Oracle就会报错

2.当一个数的小数部分的长度 > s 时,Oracle就会舍入。

3. 当s(scale)为负数时,Oracle就对小数点左边的s个数字进行舍入。

4 .当s > p 时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入

总之,还有一些细节的东西需要注意,需要多总结。

oracle 修改数据精度问题的更多相关文章

  1. oracle基础教程(8)oracle修改字符集

    oracle基础教程(8)oracle修改字符集 1.用dba连接数据库 -->sqlplus / as sysdba 2.查看字符集 -->SELECT parameter, value ...

  2. ORACLE修改用户表所属表空间的步骤

    ORACLE修改用户表所属表空间的步骤 使用脚本进行修改.据目前所了解,正长情况下需要修改表的空间和表的索引的空间,如果涉及到BOLB字段的表,修改的方式又不一样了!正常情况下的修改脚本:1.修改表的 ...

  3. [转载]Oracle修改表空间大小

    Oracle修改表空间大小 使用Oracle10g建立数据库后,向数据库中导入了部分数据,第二天继续向数据库中导入数据表时发生错误: 查了很多资料发现原来是Oracle表空间限制,导致无法继续导入数据 ...

  4. 如何实现Oracle修改用户权限 .

    这里将介绍Oracle修改用户权限的实现过程,包括一些权限管理方面的东西.希望通过本文能对大家了解Oracle修改用户权限有所帮助. ORACLE数据库用户与权限管理 ORACLE是多用户系统,它允许 ...

  5. oracle 修改表的sql语句

    oracle 修改表的sql语句     1增加一个列:ALTER TABLE 表名 ADD(列名 数据类型);如:ALTER TABLE emp ADD(license varchar2(256)) ...

  6. oracle修改密码及账户锁定

    在oracle修改密码的时候,一种是用dba账户来修改用户的密码,一种是用户自己修改自己的密码: SQL> alter user kel identified by kel; 解锁命令: SQL ...

  7. Oracle修改字段类型和长度

    Oracle修改字段名 alter table 表名 rename column 旧字段名 to 新字段名 Oracle修改字段类型和长度 alter table 表名 modify 字段名 数据类型 ...

  8. oracle修改审计功能

    oracle修改审计功能 如果没有关闭审计功能,审计日志文件默认保存在位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/ 关闭审计:alter system set au ...

  9. Oracle修改表结构字段名和字段长度

    添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….); 修改字段的语法:alter ...

随机推荐

  1. day23-类的封装

    1.封装 封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容.所以,在使用面向对象的封装特性时,需要:1)将内容封装到某处2)从某处调用被封装的内容 第一步:将内容封装到某处 cl ...

  2. nodejs 热更新插件

    键入命令: npm -g install supervisor supervisor必须安装到全局 可以用supervisor 来启动服务 命令supervisor app.js

  3. mysql主从复制搭建中几种log和pos详解

    一.主从原理 Replication 线程   Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql in ...

  4. 减少mysql主从数据同步延迟

    网上给出的解决办法: 基于局域网的master/slave机制在通常情况下已经可以满足'实时'备份的要求了.如果延迟比较大,就先确认以下几个因素:1. 网络延迟2. master负载3. slave负 ...

  5. 用crash来分析一下proc的文件访问

    一般来说,用户通过fd的传入,调用open系统调用,来获取fd,然后read的时候,通过这个fd来查找对应的file* SYSCALL_DEFINE3(open, const char __user ...

  6. delphi 实现用户自定义通知(User Notification)

    unit Form_Main; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, Sy ...

  7. django 运行脚本

    转自:https://segmentfault.com/a/1190000006752130 runscript 命令会首先检查每个 app 下的 scripts 目录,如果找到对应名字的脚本就会执行 ...

  8. Java 分页与原理(上)

    Java web 实习需要用到分页技术 所以现在学习一下 做个记录 方便以后查阅 分类:传统分页技术 下拉式分页技术 起始位置(0)开始 查询(10条记录)

  9. C++ 关于滚动条的滚动问题

    SCROLLINFO scrollinfo; GetScrollInfo(SB_HORZ, &scrollinfo, SIF_ALL); switch (nSBCode) { case SB_ ...

  10. ESET官方下载地址

    官方远程下载 ESET NOD32 Antivirus(32位) ESET NOD32 Antivirus(64位) ESET Smart Security(32位) ESET Smart Secur ...