我有一個文本文件(〜100,000 +行),其中每列都是固定長度,我需要將它放到SQL Server數據庫表中。我們的每個客戶都需要獲取這些數據,但每個文本文件略有不同,所以我們必須手動進入並調整SQL存儲過程中的字符間距。固定長度的文本文件到SQL數據表
我想知道是否有方法可以改用XML/XSD/XSLT。這樣,我不必進入並手動編輯存儲過程。
我們目前做的是這樣的:
1.) SQL server stored procedure reads a text file from the disk
2.) Each record is split into an XML element and dumped into a temporary table
3.) Using SQL Server's string manipulation, each element is parsed
4.) Each column is dumped into
爲了清楚起見,這裏有幾個例子...
一臺客戶機的文本文件將包含以下內容:
Name [12 Characters]
Employer [20 Characters]
Income [7 Characters]
Year-Qtr [5 Characters]
JIM JONES HOMERS HOUSE OF HOSE100000 20113
另一個客戶的文本文件將具有以下內容:
Year-Qtr [5 Characters]
Income [7 Characters]
Name [12 Characters]
Employer [20 Characters]
20113100000 JIM JONES HOMERS HOUSE OF HOSE
他們基本上都有相同的領域,有些可能有更多的是少一些,只是以不同的順序。
您可以證明文本文件有所不同嗎?也許這將有助於衝出一個解決方案。 – 2012-02-29 18:41:44
我不確定這是否會起作用,但是您是否查看了「BULK INSERT」命令? http://msdn.microsoft.com/en-us/library/aa225968%28v=sql.80%29。aspx – 2012-02-29 19:48:12
我們曾經使用BULK INSERT,但它需要一堆權限,當IT決定移動數據庫,文件和文件夾時,這些權限有時會被忽略。 – Jim 2012-02-29 20:06:41