SQL 服务器 BULK INSERT:批量加载数据转换错误(指定代码页的类型不匹配或无效字符)

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

这是我的 table 定义:

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 行)我都收到错误

Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 1 (SessionNum)

Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 2, column 1 (SessionNum)

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

我没有答案,但我有一条攻略:把它分解成更小的问题。

从一组仅包含 5 行数据的数据开始。如果仍然失败,将其分解为 1 列的 5 行——这将测试您的行分隔符。然后,重新添加第二列,以测试列分隔符。接下来,添加除 "blob" 列以外的所有列,进行测试,然后重新添加 blob。可能的话,只将 blob 作为单列数据集加载,看看它是如何工作的。

请注意,您需要为以上所有内容创建特定的测试表。

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