当我尝试将文本文件导入到我的数据库时,我收到转换错误.以下是我收到的错误信息:
第1行第4列(年)的批量加载数据转换错误(指定代码页的类型不匹配或无效字符).@H_404_3@
CREATE TABLE Students ( StudentNo Integer NOT NULL Primary Key,FirstName VARCHAR(40) NOT NULL,LastName VARCHAR(40) NOT NULL,Year Integer,GPA Float NULL );
100,Christoph,Van Gerwen,2011 101,Anar,Cooke,2011 102,Douglis,Rudinow,2008
我想我知道是什么问题.下面是我的批量插入代码:@H_404_3@
use xta9354 bulk insert xta9354.dbo.Students from 'd:\userdata\xta9_Students.txt' with (fieldterminator = ',',rowterminator = '\n')
解决方法
尝试使用
format file,因为您的数据文件只有4列.否则,尝试使用OPENROWSET或使用暂存表.
myTestFormatFiles.Fmt可能看起来像:@H_404_3@
9.0 4 1 sqlINT 0 3 "," 1 StudentNo "" 2 sqlCHAR 0 100 "," 2 FirstName sql_Latin1_General_CP1_CI_AS 3 sqlCHAR 0 100 "," 3 LastName sql_Latin1_General_CP1_CI_AS 4 sqlINT 0 4 "\r\n" 4 Year "
http://i.msdn.microsoft.com/dynimg/IC45684.gif@H_404_3@
This tutorial在使用BULK INSERT跳过列时也可能有所帮助.@H_404_3@
你的声明将如下所示:@H_404_3@
USE xta9354 GO BULK INSERT xta9354.dbo.Students FROM 'd:\userdata\xta9_Students.txt' WITH (FORMATFILE = 'C:\myTestFormatFiles.Fmt')