【问题标题】:SQL Error 8115 Arithmetic overflow error converting numeric to data type numericSQL 错误 8115 将数字转换为数据类型数字的算术溢出错误
【发布时间】:2013-10-15 05:26:11
【问题描述】:

我的 sql 表中有一个列

MIN_PRICE(NUMERIC(38,10),NULL)

我想将这些值插入到我的临时表中,该表也有一列

MIN_PRICE(NUMERIC(38,10), NULL)

但是在插入值时出错

消息 8115,第 16 级,状态 8,第 28 行
将数值转换为数值数据类型时出现算术溢出错误。

【问题讨论】:

  • 请把你试过的...
  • 没有尝试任何特别的东西,刚开始用INSERT查询插入值并得到错误
  • 那可能是什么值?
  • @RohanS 也发布您的插入查询,问题可能在于您给出的值对给定的数字列有效。
  • 什么是MIN_PRICE?如果它是 UDF,则可能是它内部的某些计算导致溢出。

标签: sql sql-server sql-server-2008


【解决方案1】:

您插入的数据可能超出了小数点左侧 38 位和小数点后 10 位的限制。当您对聚合函数或类似函数执行操作时,可能会发生这种情况。所以,最好检查所有声明的变量是否兼容。

【讨论】:

    【解决方案2】:

    如果您使用的是 SQL 服务器,请尝试此操作。只要您没有将任何值传递给 MIN_PRICE 列,它将采用空值。

    declare @table table (
    MIN_PRICE NUMERIC(38,10) NULL
    )
    

    【讨论】:

      猜你喜欢
      • 2021-10-29
      • 1970-01-01
      • 2013-05-27
      • 1970-01-01
      • 2017-06-24
      相关资源
      最近更新 更多