本文内容来自YashanDB官网,原文内容请见:https://www.yashandb.com/newsinfo/7610113.html?templateId=171...
问题现象
在YashanDB上执行Oracle同样的建表语句,插入同样的数据,包含大的整型数字,在Oracle执行成功,在YashanDB执行失败,报错SQL错误 [13] [22000]: [line: 0 column: 0] YAS-00013 value is larger than INTEGER allowed,是怎么回事?
问题的风险及影响
大整型数字插入
问题影响的版本
YashanDB版本:所有版本
解决方法及规避方式
1、原因核查
正常int类型取值范围是-231 (-2,147,483,648) ~ 231 - 1 (2,147,483,647)
YashanDB的设计规格是符合此常规的:
数据类型规格|YashanDB Doc
问题中的整型数字有16位,已经远超了int类型的最大值。核查Oracle中表的定义,发现实际建表语句发生变更:
核查Oracle资料,可知在Oracle数据库中,整数类型通常使用的数据类型是NUMBER,INT不是Oracle的标准数据类型,有些开发工具会将其映射为NUMBER。
2、解决方法
修改字段为Number或Bigint
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。