Sql server 2012 BCP导入错误“;铸造规格的字符值无效;

Sql server 2012 BCP导入错误“;铸造规格的字符值无效;,sql-server-2012,sqlbulkcopy,bcp,Sql Server 2012,Sqlbulkcopy,Bcp,全部 我正在使用BCP进行导入导出,并且在尝试重新导入时,仅1行(导出的第一行)出现“强制转换规范的无效字符值”错误。 表结构 Col1——数字(19,0) Col2——NVARCHAR(400) Col3--NVARCHAR(400) 我正在使用以下命令 出口 EXEC master..xp_cmdshell 'bcp "SELECT TOP 10 Col1, Col2, Col3 FROM Server.dbo.TableName" queryout C:\Data\File.dat -S

全部 我正在使用BCP进行导入导出,并且在尝试重新导入时,仅1行(导出的第一行)出现“强制转换规范的无效字符值”错误。 表结构 Col1——数字(19,0) Col2——NVARCHAR(400) Col3--NVARCHAR(400) 我正在使用以下命令

出口

EXEC master..xp_cmdshell 'bcp "SELECT TOP 10 Col1, Col2, Col3 FROM Server.dbo.TableName" queryout C:\Data\File.dat -S Server -T -t"<EOFD>" -r"<EORD>" -w'
这是从哪里来的?在“我的列”的开头添加的数据仍然未知


尝试使用格式文件导入时,我能够成功导入,使用开关-c时,我也能够成功导入,但出于某些目的,我们必须使用-w开关来完成导入。

使用-w选项时,我相信BCP会忽略任何-t或-r选项,并使用\t和\n以及字段和行终止符

从MS文档:

-w使用Unicode字符执行大容量复制操作。此选项不会提示每个字段;它使用nchar作为存储 键入,没有前缀,\t(制表符)作为字段分隔符,以及\n (换行符)作为行终止符-w与 -c


如果要使用-w,是否可以尝试删除指定的列和行delimeters?我理解-w在默认情况下使用\n和\t。但是,在这种情况下,当我显式声明列和行Delimeters时,为什么它不起作用呢对不起,-w起作用了吗?如果是的话,那么这可能是一个要求。请参阅bcp.exe文档。如果我不使用此格式文件,并尝试使用与导出数据相同的选项插入它,则该文件工作正常。
EXEC master..xp_cmdshell 'BCP Server.dbo.TableName format nul -S Server -T -w -f "C:\Data\File.fmt" -t"<EOFD>" -r"<EORD>" '
#@ Row 1, Column 1: Invalid character value for cast specification @#

?1000   Mytestdataunicoded  nothing