【问题标题】:"String data, right truncation" call BCP“字符串数据,右截断”调用 BCP
【发布时间】:2016-05-28 21:42:35
【问题描述】:

这是我用于在 SQL server 中插入数据的 BCP 命令:

bcp sfnav.dbo.Customer in "C:\Users\TSL\Desktop\TSL Data\ID_Customer_151124.csv" -F2 -c -t "^" -r "\n" -S ftpserver\sqlexpress -U abc -P xyz

当我尝试在批处理文件中运行相同的命令时,会导致错误:

call bcp sfnav.dbo.Customer in "C:\Users\TSL\Desktop\TSL Data\ID_Customer_151124.csv" -F2 -c -t "^" -r "\n" -S ftpserver\sqlexpress -U abc -P xyz

错误:

开始复制... SQLState = 22001, NativeError = 0 错误 = [Microsoft][ODBC Driver 11 for SQL Server]字符串数据,对 截断 SQLState = 22001, NativeError = 0

【问题讨论】:

  • 您的行分隔符可能不正确,应该是\r\n。在显示特殊字符的查看器中检查您的数据文件。例如,在 Notepad++ 中,转到 View>Show Symbol>Show All Characters 并检查行分隔符。
  • 在 StackOverflow 上报告了类似的问题 here
  • 如果行分隔符真的是\n,试试十六进制值:-r "0x0a"
  • 我尝试将 \n 替换为“0x0a”,但仍然显示相同的错误。通常,当我单独运行命令时它工作正常。但是当我批量运行 .bat 文件时,它会导致错误
  • 我不是只输入了两次我认为您的问题所在吗?好的第三次,使用开关-r \r\n 而不是-r \n

标签: sql-server command-line bcp


【解决方案1】:

您想检查接收表列的长度。如果它比此列的 BCP 值短,您会很高兴遇到此错误!!!

【讨论】:

    【解决方案2】:

    尝试从 Access 中提取图像文件时出现 RIGHT TRUNCATION 错误 并将其作为 blob 插入 SQL Server 数据库。我通过改变解决了我的问题 目标 Sql 服务器上从 VARBINARY(MAX) 到 IMAGE 的 blob 列数据类型。如果 此图像数据类型更改对您有用,然后请记住最大大小 为 2 GB。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-03
      • 2019-04-10
      • 2012-07-18
      • 2023-04-01
      • 1970-01-01
      • 2019-10-01
      • 2020-07-26
      • 2017-09-10
      相关资源
      最近更新 更多