【问题标题】:Inserting numeric data with non zero scale with table-valued parameter使用表值参数插入非零比例的数值数据
【发布时间】:2017-03-08 20:54:51
【问题描述】:

我正在使用表值参数将大量数据插入到各种表中。当这些表具有带比例的数字列并且在单个数据表中存在具有不同比例的行时,我会收到以下错误:

传入的表格数据流 (TDS) 远程过程调用 (RPC) 协议流不正确。表值参数 3 (""),第 0 行,第 0 列:数据类型 0x6C 的精度或小数位数无效

发生这种情况的示例。

  • 要插入的表和关联的 tvp 有一个 numeric(6,3) 列
  • 正在插入的数据表中有 2 行
    • 数值列的值为 1.2
    • 另一个数值列的值为 1.23

如果该示例中第二行的数值列的值为 1.3,则没有错误。这是在 Java 中使用来自 Microsoft JDBC Driver 6.0 for SQL Server 和 SQL Server 2016 数据库的 jdbc42.jar。

【问题讨论】:

    标签: java sql-server-2016 table-valued-parameters


    【解决方案1】:

    在设置集成测试并花费一个小时左右尝试不同的事情后,我发现其原因是值作为字符串插入到数据表中,并且列的值为零且尾随多个零导致此错误。

    “0”可以,“0.0”可以。 “0.00”不是。以数字的形式插入行可以解决问题,0.00 是可以的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-04
      • 2020-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      相关资源
      最近更新 更多