我有一个文本文件(〜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