【发布时间】: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