加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 第1列第4列(年)的批量加载数据转换错误(指定代码页的类型

发布时间:2020-12-12 16:46:42 所属栏目:MsSql教程 来源:网络整理
导读:当我尝试将文本文件导入到我的数据库时,我收到转换错误.以下是我收到的错误信息: 第1行第4列(年)的批量加载数据转换错误(指定代码页的类型不匹配或无效字符). 这是我的查询代码: CREATE TABLE Students( StudentNo Integer NOT NULL Primary Key,FirstName
当我尝试将文本文件导入到我的数据库时,我收到转换错误.以下是我收到的错误信息:

第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:userdataxta9_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       "rn"   4     Year           "

http://i.msdn.microsoft.com/dynimg/IC45684.gif

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

你的声明将如下所示:

USE xta9354
GO
BULK INSERT xta9354.dbo.Students
    FROM 'd:userdataxta9_Students.txt' 
    WITH (FORMATFILE = 'C:myTestFormatFiles.Fmt')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读