180416
2018-12-13 11:11
如图,字段b的数据类型是number(6,-3),但是能够插入和显示的数据都不止6位,plsql和sqlplus都是这样,为什么呢
更新:
图一插入的数据长度最大为9,图二是10,报错了。
重复一次,还是这样。
所以它的逻辑是 允许写入的整数部分的最大长度是p+s(s<0);
并且它截取3位是这样截的整数后三位为0,第四位四舍五入,跟的小数部分的都不同,跟数学的四舍五入逻辑也不同
感觉number(p,s)这个数据类型在s的符号不同的时候都不是同一个数据类型。
插入数字的整数部分最大长度应该是p-s,所以上图能够插入的最大长度是6-(-3)=9;
如果s为负数时,就是对小数点左边的s个数字进行舍入。
Oracle数据库开发必备利器之SQL基础
160913 学习 · 680 问题
相似问题