sql – 第1列第4列(年)的批量加载数据转换错误(指定代码页的类型不匹配或无效字符)

前端之家收集整理的这篇文章主要介绍了sql – 第1列第4列(年)的批量加载数据转换错误(指定代码页的类型不匹配或无效字符)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我尝试将文本文件导入到我的数据库时,我收到转换错误.以下是我收到的错误信息:

第1行第4列(年)的批量加载数据转换错误(指定代码页的类型不匹配或无效字符).

这是我的查询代码

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

我想我知道是什么问题.下面是我的批量插入代码

use xta9354
bulk insert xta9354.dbo.Students
from 'd:\userdata\xta9_Students.txt' 
with (fieldterminator = ',',rowterminator = '\n')

使用示例数据,在Year属性后面没有’,’,即使在年后还有另一个属性为Grade

有人可以告诉我如何解决这个问题?

解决方法

尝试使用 format file,因为您的数据文件只有4列.否则,尝试使用OPENROWSET或使用暂存表.

myTestFormatFiles.Fmt可能看起来像:

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

This tutorial在使用BULK INSERT跳过列时也可能有所帮助.

你的声明将如下所示:

USE xta9354
GO
BULK INSERT xta9354.dbo.Students
    FROM 'd:\userdata\xta9_Students.txt' 
    WITH (FORMATFILE = 'C:\myTestFormatFiles.Fmt')
原文链接:https://www.f2er.com/mssql/81351.html

猜你在找的MsSQL相关文章