我正在尝试通过bcp命令行实用程序将数据导入表中。之前我遇到的错误是右截断,我将我的表中的数据类型更改为nvarchar并使用-n开关运行FMT命令,现在错误似乎已经改变但我仍然无法导入数据。
我用来导入的命令如下:
bcp ABC.ABC.DIM_Sales_Channel in C:\temp\datafile\DIM_Sales_Channel.dat -f C:\temp\formatcorrected\DIM_Sales_Channel.fmt -T
显示的错误如下:
[Microsoft][SQL Server Native Client 11.0][SQL Server]Conversion not allowed from the given field type 0x38 for field 8 to column 8.
11.0
9
1 SQLINT 0 4 "" 1 Sales_Channel_SK ""
2 SQLINT 0 4 "" 2 Sales_Channel_ID ""
3 SQLNCHAR 2 36 "" 3 Sales_Channel_Code Latin1_General_CI_AI
4 SQLNCHAR 2 36 "" 4 Sales_Channel_Level_1 Latin1_General_CI_AI
5 SQLNCHAR 2 36 "" 5 Sales_Channel_Level_2 Latin1_General_CI_AI
6 SQLDATETIME 1 8 "" 6 Inserted_Date ""
7 SQLDATETIME 1 8 "" 7 Modified_Date ""
8 SQLINT 1 4 "" 8 batchno ""
9 SQLINT 1 4 "" 9 Status ""
[Microsoft] [SQL Server Native Client 11.0] [SQL Server]不允许从字段8到列8的给定字段类型0x38进行转换。
任何线索?
答案 0 :(得分:0)
当您的FMT文件中的列与您的目标表/源表不匹配时,会发生此错误,我创建了一个中间临时表,用于正确移动我的数据,这导致了此处的问题。它是通过获取我的中间临时表的fmt文件来解决的。