I am using an XML file to import a CSV file, and the first line of data is skipped. I canโt understand why.
File format
<?xml version="1.0"?> <BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <RECORD> <FIELD ID="1" xsi:type="CharTerm" TERMINATOR='","' /> <FIELD ID="2" xsi:type="CharTerm" TERMINATOR='\n' /> </RECORD> <ROW> <COLUMN SOURCE="1" NAME="COLUMN1" xsi:type="SQLVARYCHAR" /> <COLUMN SOURCE="2" NAME="COLUMN2" xsi:type="SQLVARYCHAR" /> </ROW> </BCPFORMAT>
Csv
COLUMN1,COLUMN2 "ABC","ABC123456" "TNT","TNT123456"
Query
SELECT * FROM OPENROWSET(BULK 'C:\sample.csv', FORMATFILE='C:\sample.xml', FIRSTROW = 2) AS a
Result
COLUMN1 COLUMN2 ------- ---------- "TNT TNT123456" (1 row(s) affected)
If FIRSTROW changed to 1 , the result will be:
COLUMN1 COLUMN2 --------------------- ---------- COLUMN1,COLUMN2 "ABC ABC123456" "TNT TNT123456"
If the header line is removed from the CSV and FIRSTROW changed to 1 , the result is returned as expected:
COLUMN1 COLUMN2 ------- ---------- "ABC ABC123456" "TNT TNT123456"
Since this is an automatic report that comes with headers, are there other options to fix this?
import sql-server csv
Kermit
source share