SQL 服务器 2012 - BCP 导入错误 "Invalid character value for cast specification"



全部我正在使用BCP进行导入-导出,并在尝试导入时仅为1(导出的第一行(行收到"转换规范的无效字符值"错误。表格结构第1列--数字(19.0(Col2-NVARCHAR(400(Col3-NVARCHAR(400(我正在使用以下命令

FOR出口

EXEC master..xp_cmdshell 'bcp "SELECT TOP 10 Col1, Col2, Col3 FROM Server.dbo.TableName" queryout C:DataFile.dat -S Server -T -t"<EOFD>" -r"<EORD>" -w'

与我生成FORMAT文件的方式相同

EXEC master..xp_cmdshell 'BCP Server.dbo.TableName format nul -S Server -T -w -f "C:DataFile.fmt" -t"<EOFD>" -r"<EORD>" '

现在,当我尝试将数据导入SQL Server表时,我会收到错误"强制转换规范的无效字符值"错误日志显示了类似的内容

#@ Row 1, Column 1: Invalid character value for cast specification @#
?1000   Mytestdataunicoded  nothing

现在从哪里来?在我的列数据开始时添加的数据仍然未知。

我能够在尝试使用格式文件导入时成功导入,也能够在使用开关-c时成功导入。但出于某些目的,我们必须使用-w开关才能做到这一点。

我使用BCP进行进出口;无效的铸件规格的字符值";错误仅为1(的第一行export(行。

导出文件的第一行是否包含列定义信息?

如果是,请使用-F2。

https://learn.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-ver15#F

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

来自MS文档:

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

相关内容

最新更新