繁体   English   中英

SQL Server批量插入:批量加载数据转换错误(类型不匹配或指定代码页的字符无效)

[英]SQL Server BULK INSERT: Bulk load data conversion error (type mismatch or invalid character for the specified codepage)

这是我的表定义:

CREATE TABLE BillTexts 
(
    SessionNum INT,
    Name VARCHAR(200),
    Part INT,
    BillText VARCHAR(MAX)
)

这是我用来批量插入的代码。 我使用了时髦的定界符来确保与billtext列中的内容没有冲突(逗号,换行符)。

BULK INSERT BillTexts
FROM texts.csv
WITH (
    DATAFILETYPE = 'char',
    FIELDTERMINATOR = '¬',
    ROWTERMINATOR = '[]{}\r\n'
)

这是我的文本文件的前几行。

112¬hconres1¬1¬"A whole bunch of text"[]{} 
112¬hconres1¬2¬"Another whole bunch of text"[]{}

在每行(包括第1行到第10行)上,我都会收到错误消息

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

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

老实说,我不知道为什么它无法插入。 据我所知,这是将数据放入表中的唯一方法(有很多)。

我没有答案,但是有一条攻击线:将其分解为较小的问题。

从一组仅包含5行数据的数据开始。 如果仍然失败,请用1列将其分解为5行-这将测试您的行定界符。 然后,重新添加第二列,以测试列定界符。 接下来,添加除“ blob”列之外的所有列,进行测试,然后重新添加blob。可能的是,仅将blob加载为单列数据集,看看其工作原理。

请注意,您需要为上述所有步骤创建特定的测试表。

从多个角度看待问题应该有助于缩小正在发生的事情-哪些有效,哪些无效。 (文件是单字节的,不是双字节的,对吗?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM