使用不可打印的字段分隔符 FS (0x1c) 导入数据文件

问题描述

我正在尝试将数据文件批量插入到 sql 表中。数据文件结构为:

Col1FSCol2FSCol3
Val1FSVal2FSVal3

FS 为控制字符(File Separator),对应 Byte 1C。

但是,sql 中的以下批量插入代码不起作用:

bulk insert schema.table
from 'filepath'
with (
  datafiletype = 'char',codepage = 'ACP',firstrow = 2,fieldterminator = '0x1C',rowterminator = '\n',tablock
)

解决方法

我们刚刚解决了这个问题:如果fieldterminator是用Hex-Notation指定的,那么rowterminator也必须用Hex-Notation来指定。

因此,解决方案是:

 bulk insert schema.table
from 'filepath'
with (
  datafiletype = 'char',codepage = 'ACP',firstrow = 2,fieldterminator = '0x1C',rowterminator = '0x0A',tablock
)