如何使用Sql Server查询跳过页眉和页脚导入平面文件



我想使用SQL Server查询导入平面文件。平面文件由一个HEADER行和一个FOOTER行以PIPE分隔。

平面文件示例如下,

H|201501204|01
1|abc|123
2|efg|456
4|hij|789
T|03

在上面的文件中,H和T分别定义了HEADER和FOOTER,"201501204"将是日期,"01"将是平面文件号,"03"将是扁平文件中的数据行数。

我尝试过使用大容量插入,但在导入平面文件时丢失了一个数据行。我使用FIRSTROW=2和LASTROW=2651,我的平面文件中的数据行数为2650,但导入后,我在表中只得到2649行。

使用BULK INSERT语句(请参阅https://msdn.microsoft.com/en-us/library/ms188365.aspx),所需的选项为FIRSTROW,并将其设置为2(文件中的第二行)。您也可以使用LASTROW。

或者,先将数据加载到临时表中-单列,然后在SQL Server中将其拆分,并通过WHERE LEFT(input_line,1)排除H和T,而不在('H','T')中

最新更新