Ich glaube nicht, dass Sie Zeilen in einem anderen Format mit BULK INSERT
überspringen können /BCP
.
Wenn ich das ausführe:
TRUNCATE TABLE so1029384
BULK INSERT so1029384
FROM 'C:\Data\test\so1029384.txt'
WITH
(
--FIRSTROW = 2,
FIELDTERMINATOR= '|',
ROWTERMINATOR = '\n'
)
SELECT * FROM so1029384
Ich bekomme:
col1 col2 col3
-------------------------------------------------- -------------------------------------------------- --------------------------------------------------
***A NICE HEADER HERE***
0000001234 SSNV 00013893-03JUN09
0000005678 ABCD 00013893-03JUN09
0000009112 0000 00013893-03JUN09
0000009112 0000 00013893-03JUN09
Es sieht so aus, als ob es das '|' erfordert sogar in den Kopfdaten, weil es bis dahin in die erste Spalte einliest - und einen Zeilenumbruch in der ersten Spalte verschluckt. Wenn Sie einen Feldabschlussparameter einfügen, erwartet dieser natürlich, dass jede Zeile MUSS haben.
Sie könnten die Zeile mit einem Vorverarbeitungsschritt entfernen. Eine andere Möglichkeit besteht darin, nur vollständige Zeilen auszuwählen und sie dann zu verarbeiten (ohne die Kopfzeile). Oder verwenden Sie ein Tool, das damit umgehen kann, wie SSIS.