我在使用BCP导入导出时,只有1行(导出的第一行)得到 "Invalid character value for cast specification "的错误信息。表结构Col1 -- Numeric(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'
我以同样的方式生成FORMAT文件。
EXEC master..xp_cmdshell 'BCP Server.dbo.TableName format nul -S Server -T -w -f "C:\Data\File.fmt" -t"<EOFD>" -r"<EORD>" '
现在,当我尝试将数据导入到SQL Server表中时,我得到了错误的""。投放规格的无效字符值"错误日志 "显示我的情况是这样的
#@ Row 1, Column 1: Invalid character value for cast specification @#
?1000 Mytestdataunicoded nothing
现在我的列数据从哪里开始添加的,还不知道。
当我尝试用格式文件导入时,我能够成功导入,当使用switch -c时,也能够成功导入,但为了某些目的,我们必须使用-w switch来导入。
当使用-w选项时,我相信BCP会忽略任何-t或-r选项,并使用\t和\n以及字段和行结束符。
来自MS文档。
-w 使用Unicode字符进行批量复制操作。这个选项不会提示每个字段;它使用nchar作为存储类型,没有前缀,使用t/t(tab字符)作为字段分隔符,使用换行符作为行结束符。-w与-c不兼容。