注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

PostgreSQL 中文网

 
 
 

日志

 
 

PostgreSQL:关于 "numeric field overflow" 报错  

2013-09-29 16:05:00|  分类: PG案例分析 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

       今天发现一生产库报出大量 "numeric field overflow" 错误,详细报错日志如下:

--1 数据库详细日志 (取一行)
 2013-09-29 15:12:05.830 CST,"db_name","db_name",7195,"XXXX.XXX.XXX.XX51344",5247d21f.1c1b,19,"INSERT",2013-09-29 15:09:19 CST,512/17000814,0,ERROR,22003,"numeric field overflow","A field with precision 10, scale 0 must round to an absolute value less than 10^10.",,,,,   
   备注:这里仅取一行,而且还省略了日志中的 SQL 语句。这个报错说明是整型字段超出指定精度,
             接着模拟下。
      
--2 创建测试表
 rancs=> create table test_num (rate numeric(4,1));
CREATE TABLE

francs=> \d test_num
      Table "francs.test_num"
 Column |     Type     | Modifiers 
--------+--------------+-----------
 rate   | numeric(4,1) | 
 
--3 插入数据测试
 francs=> insert into test_num (rate) values (100);
INSERT 0 1

francs=> insert into test_num (rate) values (100.3);
INSERT 0 1

francs=> insert into test_num (rate) values (1000.3);
ERROR:  numeric field overflow
 备注:预期错误出现。

--4 数据库报错
 2013-09-29 15:41:55.471 CST,"francs","francs",27916,"[local]",5247d912.6d0c,4,"INSERT",2013-09-29 15:38:58 CST,3/1036,0,ERROR,22003,"numeric field overflow","A field with precision 4, scale 1 must round to an absolute value less than 10^3.",,,,,"insert into test_num (rate) values (1000.3);",,,"psql"
  备注:关于 NUMERIC(precision, scale),文档中有详细说明,precision 表示整个 numeric 的长度,
             scale 表示小数部分的长度,手册中说明如下:
        
--5 手册中说明

NUMERIC(precision, scale)

    We use the following terms below: The scale of a numeric is the count of decimal digits in the fractional part, to the right of the decimal point. The precision of a numeric is the total count of significant digits in the whole number, that is, the number of digits to both sides of the decimal point. So the number 23.5141 has a precision of 6 and a scale of 4. Integers can be considered to have a scale of zero.
    
  备注:原因已经很清楚了,接下来联系项目组,修复这个错误。
  
--6 参考

  评论这张
 
阅读(3449)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016