0
我正在編寫代碼來每天導入幾十個中等大小的文本文件到SQL SERVER中。目前,這些數據被導入到FOXPRO數據庫中。我正在轉換爲使用SQL SERVER。我已完成所有固定長度的文件,但最後三個數據文件具有可變長度字段作爲每行中的最後一個字段。這個最後的字段可以長達32,000字節。在數據庫中,我已經聲明這是VARCHAR(MAX)。批量插入導入一行,然後終止
字段終止符是換行符,它是換行符。也就是說,該行以單個'0x0a'結束,以標記字段的末尾和行的末尾,而不是兩個換行符。
下面是我使用的SQL:
BULK INSERT
[MyDB].[dbo].[X]
FROM 'C:\temp\eep.dat'
WITH
(
DATAFILETYPE ='CHAR',
FORMATFILE='C:\temp\translate_eep.xml',
ERRORFILE='C:\temp\ERR_eep.TXT',
FIELDTERMINATOR='0X0A',
ROWTERMINATOR='0X0A'
)
GO
Translate_eep.xml看起來是這樣的:
<?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="CharFixed" LENGTH="5"/>
<FIELD ID="2" xsi:type="CharFixed" LENGTH="5"/>
<FIELD ID="3" xsi:type="CharFixed" LENGTH="5"/>
<FIELD ID="4" xsi:type="CharTerm" TERMINATOR="0X0A"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="c1" xsi:type="SQLCHAR"/>
<COLUMN SOURCE="2" NAME="c2" xsi:type="SQLCHAR"/>
<COLUMN SOURCE="3" NAME="c3" xsi:type="SQLCHAR"/>
<COLUMN SOURCE="4" NAME="c4" xsi:type="SQLCHAR"/>
</ROW>
</BCPFORMAT>
不幸的是,當我用這個,它進口一條線,然後終止。我怎樣才能讓這個東西讀取整個文件?
樣本數據:
ABCDE12345EMILYLove is not all. It is not meat, nor drink, nor slumber<lf>
FGHIJ67890SNL Oh, no! Mr. bill!<lf>
KLMNO24680ALEX All Nature is but art, unknown to thee<lf>
PQRST13579FROSTSome say the world will end in fire,<lf>
您可以發佈樣本數據 – praveen
該錯誤文件中是否有任何內容? – user1166147
Praveen,樣本數據已添加。 user1166147,沒有創建錯誤文件,這意味着(通常)沒有錯誤。 – elbillaf