写点什么

【YashanDB 知识库】同样建表语句,大整型数字在 Oracle 插入成功,在 YashanDB 插入失败

作者:YashanDB
  • 2024-12-13
    广东
  • 本文字数:488 字

    阅读完需:约 2 分钟

本文内容来自 YashanDB 官网,原文内容请见:https://www.yashandb.com/newsinfo/7610113.html?templateId=1718516


问题现象

在 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 的设计规格是符合此常规的:

https://doc.yashandb.com/yashandb/23.2/zh/%E4%BA%A7%E5%93%81%E6%8F%8F%E8%BF%B0/%E4%BA%A7%E5%93%81%E8%A7%84%E6%A0%BC/%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E8%A7%84%E6%A0%BC.html

问题中的整型数字有 16 位,已经远超了 int 类型的最大值。核查 Oracle 中表的定义,发现实际建表语句发生变更:

核查 Oracle 资料,可知在 Oracle 数据库中,整数类型通常使用的数据类型是 NUMBER,INT 不是 Oracle 的标准数据类型,有些开发工具会将其映射为 NUMBER

 

2、解决方法

修改字段为 Number 或 Bigint

发布于: 刚刚阅读数: 6
用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
【YashanDB知识库】同样建表语句,大整型数字在Oracle插入成功,在YashanDB插入失败_数据库_YashanDB_InfoQ写作社区