一个bigint问题

db2 => values bigint ( 23 * 1000000 )

1

--------------------

23000000

1 record(s) selected.

db2 => values bigint ( 23 * 100000000 )

SQL0802N Arithmetic overflow or other arithmetic exception occurred.

SQLSTATE=22003

db2 => values bigint ( 23 * 1000000000 )

SQL0802N Arithmetic overflow or other arithmetic exception occurred.

SQLSTATE=22003

db2 => values bigint ( 23 * 10000000000 )

1

--------------------

230000000000

1 record(s) selected.

第一个和第四个都正常,为什么中间两个不正常,会溢出?

>>>>

因为对于第一组数据的1000000  DB2将其当作int,得出的结果也是在interger能表达的范围内。

第二组及第三组的1xxxx本身都在interger能表示的范围内,所以DB2也当他们是int,但是算出来的结果需要bigint才能表示。即在bigint这个scalar function生效前这个计算结果已经算术溢出了。

第四组数据的10000000000,由于其在bigint表示范围,因此db2将其作为bigint。而结果也是bigint能表示的范围,因此也不会出错。

所以可以说你的bigint scalar function没用对地方。values时是不用scalar function都能表达的,关键是要让运算不产生算术溢出。所以应该是:

values (23 * bigint(1xxxxxxxxx0))

这样明确的cast成bigint,db2就会用bigint的方式去存储运算结果了。

FROM: http://bbs.chinaunix.net/thread-1010685-1-1.html

db2 bigint java_db2 - 一个bigint问题相关推荐

  1. db2 - 一个bigint问题

    一个bigint问题 db2 => values bigint ( 23 * 1000000 ) 1 -------------------- 23000000 1 record(s) sele ...

  2. DB2遇到这样一个问题 。 ‘’Operation not allowed for reason code 7 on table DB2ADMIN.XXX. SQLSTATE=5701‘’

    工作中数据库:DB2遇到这样一个问题 . ''Operation not allowed for reason code "7" on table "DB2ADMIN.X ...

  3. java bigint范围_java - bigint(20)、smallint(5)

    CREATE TABLE `idc_logistics_assign_rules` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ...

  4. MySQL数据库时间类型datetime、bigint、timestamp的查询效率比较

    以下文章来源方志朋的博客,回复"666"获面试宝典 来源:https://juejin.im/post/6844903701094596615 数据库中可以用datetime.bi ...

  5. 我脸都问绿了!二面竟然被问到 MySQL 时间类型 datetime、bigint 及 timestamp 的查询效率。。。

    " 数据库中可以用datetime.bigint.timestamp来表示时间,那么选择什么类型来存储时间比较合适呢? 前期数据准备 通过程序往数据库插入50w数据 数据表: CREATE ...

  6. 【ES11(2020)】新增数据类型 BigInt

    在 ES10 增加了新的原始数据类型:BigInt,表示一个任意精度的整数,可以表示超长数据,可以超出2的53次方. Js 中 Number类型只能安全的表示-(2^53-1) 至 2^53-1范的值 ...

  7. TypeScript BigInt

    TypeScript BigInt 本节介绍的 bigint 数据类型是用来表示那些已经超出了 number 类型最大值的整数值,对于总是被诟病的整数溢出问题,使用了 bigint 后将完美解决. 1 ...

  8. datetime mysql 查询_mysql数据库时间类型datetime、bigint、timestamp的查询效率比较

    数据库中可以用datetime.bigint.timestamp来表示时间,那么选择什么类型来存储时间比较合适呢? 前期数据准备 通过程序往数据库插入50w数据 数据表: CREATE TABLE ` ...

  9. java中biglong_Java的long和bigint长度对比详解

    Java 中Long的值大小比较 java.util.Lang 对象吧,而不是基本类型 long  (注意大小写) Java中如果使用 == 双等于比较对象,等于比较的是两个对象的内存地址,也就是比较 ...

最新文章

  1. 活久见!技术面试官竟然给我出了一个脑筋急转弯,还问我王者荣耀什么段位?...
  2. 多分类神经网络与原子核
  3. 移动端界面中的版式设计原理
  4. Shallow-UWnet:水下图像增强新网络 2021年1月AAAI顶会论文
  5. linux遍历文件目录 链表形式
  6. python调用带参函数_Python | 带有示例的函数调用类型
  7. ZOJ2930 The Worst Schedule(最小割)
  8. centos 对某ip开放 防火墙端口_CentOS操作系统防火墙Firewalld记录日志及用途
  9. C语言 传值和传指针的区别
  10. 站立会议10--个人总结
  11. Google Health将被解散,谷歌为何折戟于医疗健康?
  12. 输入分数输出小数C语言,这是把小数转换成分数的程序,可是输入0.6666无限循环...
  13. 思科服务器如何修改启动项,思科配置tftp服务器
  14. 第2章 业务:数据驱动运营
  15. 论文写作 之 Related work
  16. 深圳-珠海-澳门-香港四日游攻略
  17. MySQL入门 - 数据分组之 group by
  18. nvidia显卡Tesla查看GPU使用情况
  19. 盛铭轩电商:详情页优化
  20. 星舟科技终止A股上市辅导,曾在新三板挂牌交易

热门文章

  1. oracle+12514+C#,Oracle10g ORA-12514
  2. openwrt 打印 APP_用这5个APP,你能在手机上做出炫酷手帐
  3. 名画154 顾安《画选四幅》
  4. cad图纸版本号管理软件-彩虹EDM图纸管理软件
  5. IOS 开发笔记——二维码的生成和扫描
  6. 多传感器融合感知技术的前沿算法与应用,包括Pointpillars、spconv+、BEVDet、LSS等算法
  7. 10个最流行免费的Mac OS文本编辑器
  8. 【工程实践】python 字典排序
  9. 她姓敖 是计算机系的,龙为什么姓敖?那凤的姓氏是什么?
  10. CSS看这篇就够了(超详细)