在SQL Server中通过bcp命令导入表数据时出错

时间:2016-06-23 06:48:55

标签: sql sql-server windows cmd

我正在尝试通过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进行转换。

任何线索?

1 个答案:

答案 0 :(得分:0)

当您的FMT文件中的列与您的目标表/源表不匹配时,会发生此错误,我创建了一个中间临时表,用于正确移动我的数据,这导致了此处的问题。它是通过获取我的中间临时表的fmt文件来解决的。