SQL 尝试写入 table 时出现问题。值大于特定精度

Getting issues when SQL is trying to write to table. Value Larger than Specific Precision

所以我在一家零售公司工作,参与调查了一个事件,在该事件中,我必须系统地 'load' 将一些库存装到拖车上,然后运送到商店。

所以我执行的一些代码有问题,进程正在尝试对 SQL table;

执行以下操作
UPDATE RESV_LOCN_HDR SET RESV_LOCN_HDR.USER_ID = :1, RESV_LOCN_HDR.CURR_WT = :2, RESV_LOCN_HDR.CURR_VOL = :3, RESV_LOCN_HDR.CURR_UOM_QTY = :4, RESV_LOCN_HDR.MOD_DATE_TIME = :5 WHERE ( RESV_LOCN_HDR.LOCN_ID = :6 )

The input variables for reference are;
input variables
  1: Address(309adbdc) Length(0) Type(8) "RFUSER" - Indicator @ 309ad7d4 = 0
  2: Address(309ae02c) Length(0) Type(4) "11047.4" - Indicator @ 309ad9b8 = 0
  3: Address(309ae1ac) Length(0) Type(4) "-1.01e+09" - Indicator @ 309ada3c = 0
  4: Address(309ae32c) Length(0) Type(4) "-57" - Indicator @ 309adac0 = 0
  5: Address(309ae55c) Length(0) Type(7) "10/27/2016 2:57:50 PM" - Indicator @ 309adb70 = 0
  6: Address(309ade0c) Length(0) Type(8) "600062508" - Indicator @ 309ad8d0 = 0

我正在写的专栏 (USER_ID、CURR_WT、CURR_VOL、CURR_UOM_QTY、MOD_DATE_TIME、LOCN_ID 都有以下数据类型;

USER_ID = VARCHAR2(15 CHAR)
CURR_WT, CURR_VOL = NUMBER(13,4)
CURR_UOM_QTY = NUMBER(9,2)
MOD_DATE_TIME = DATE
LOCN_ID = VARCHAR2(10 CHAR)

根据我的理解(我相信你们也会看到上面的内容,除了 3 之外的所有列数据类型都满足:CURR_UOM_QTY is trying to write -1.01e+09,现在是我自己还是这就是为什么返回错误的原因?上面的数据不是宏吗?或类似的东西?

没见过SQL之前写1.01e+09试试,应该是只写数值数据,不是混合数据

使用甲骨文 11g。

是的,-1.01e+09 的值就是您收到错误的原因,因为您的小数精度为 4 并且该值有更多的小数位。它不会自动四舍五入到小数点后四位。