cin*_*irl 13 bcp sql-server-2008 sql-server-2008-r2
我最近在使用bcp时遇到错误.这是错误.
SQLState = 22001,NativeError = 0错误= [Microsoft] [SQL Server Native Client 10.0]字符串数据,右截断
我正在尝试将数据解压缩到没有任何约束的临时表中,并且与数据相比,数据类型也相当大.我有来自不同表的大约11个文件被bcp'd和压缩出来,当解包错误时只有一个文件.这是我一直在成功使用的命令.最近(当试图制作当前WH的副本并设置过程时)我一直面临着问题.
employee_details.dat中的bcp.exe employee_details -n -E -S"servername"-U sa -P"密码"
我已经尝试将命令更改为-C -T -S,当我手动给出格式时,它可以工作.这是一个非常重要的数据包,我需要加载到我的WH.
我不知道我是否在这里看到格式文件.需要任何帮助.
谢谢
肉桂的女孩.
May*_*Jha 16
我们在执行BCP时也遇到了同样的问题,结果证明是.dat文件中的新行字符存在问题.
在Notepad ++中查看该文件,然后单击"显示所有字符"以查看新行字符.

BCP使用-r"\ r \n"选项抛出跟随错误,即使用以下命令
bcp dbo.Test in C:\Test.dat -c -t "|" -r "\r\n" -S "DBServerName" -T -E
Run Code Online (Sandbox Code Playgroud)
"SQLState = 22001,NativeError = 0错误= [Microsoft] [SQL Server Native Client 10.0]字符串数据,右截断"
BCP使用-r"\n"或-r"\ r"选项将文件中的所有行视为单行,即使用以下命令
bcp dbo.Test in C:\Test.dat -c -t "|" -r "\n" -S "DBServerName" -T -E
Run Code Online (Sandbox Code Playgroud)
当我们在BCP命令中使用Haxadecimal值(0x0a)作为新行字符时,问题得到了解决
bcp dbo.Test in C:\Test.dat -c -t "|" -r "0x0a" -S "DBServerName" -T -E
Run Code Online (Sandbox Code Playgroud)
当单列中可容纳的数据过多时,会发生 bcp 右截断错误。这可能是由不正确的格式文件(如果使用任何)或分隔符引起的。行终止符(Windows 有 CRLF 或“\r\n”,UNIX 有“\n”)也可能导致此错误。示例 您的格式文件包含 Windows CRLF,即“\r\n”作为行终止符,但该文件包含“\n”作为行结束符。这意味着将整个文件放入 1 行(而不是 1 列),这会导致右截断错误。