2012-02-29 41 views
0

私はテキストファイル(~100,000 +行)を持っています。各行は固定長で、SQL Serverデータベーステーブルに入れる必要があります。各クライアントはこのデータを取得する必要がありますが、各テキストファイルはわずかに異なりますので、手動でSQLストアドプロシージャの文字間隔を調整して調整する必要があります。固定長テキストファイルからSQLデータテーブル

私たちが代わりにXML/XSD/XSLTを使用することができる方法がある場合、私は思っていました。このようにして、ストアドプロシージャを手動で編集する必要はありません。

Name [12 Characters] 
Employer [20 Characters] 
Income [7 Characters] 
Year-Qtr [5 Characters] 

JIM JONES HOMERS HOUSE OF HOSE100000 20113 

一つのクライアントのテキストファイルには、次のだろう...

明確にするため
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 

、ここでは例のカップルです:

は私たちが現在やっていることはこれです

Year-Qtr [5 Characters] 
Income [7 Characters] 
Name [12 Characters] 
Employer [20 Characters] 

20113100000 JIM JONES HOMERS HOUSE OF HOSE 
:別のクライアントのテキストファイルには、以下を持っているでしょう

彼らは基本的にすべて同じフィールドを持っていますが、いくつかはもっとカップルが少なく、ちょうど異なる注文になっています。固定長テキストファイルをインポートするには、SQL ServerのXML処理機能を使用して

+1

テキストファイルの違いを実証できますか?多分それが解決策を洗い流すのに役立つでしょう。 –

+0

これがうまくいくかどうかは分かりませんが、 'BULK INSERT'コマンドを調べましたか? http://msdn.microsoft.com/en-us/library/aa225968%28v=sql.80%29。ASPX –

+0

は、私たちは、BULK INSERTを使用するために使用されるが、それはITは、データベース、ファイルやフォルダを移動することを決めたときに時々見落とさなるだろう権限の束を必要と。 – Jim

答えて

0

は、物事の後方道(悪気)のように思えます。

独自のアプリケーションをビルドする必要はありません。マイクロソフトでは既に独自のアプリケーションを構築しています。それは巧みにBCP Utilityと呼ばれています。必要に応じて、BCP Utilityにデータのインポート方法を指示するformat fileを作成することができます。最も重要な点は、それが非常に速く、リモートマシンからSQL Serverにデータをインポートできることです(ファイルをインポートするためにSQL Serverボックスに配置する必要はありません)

あなたは列の幅を変更することができる必要があります、私はフォーマットファイルを編集すると悪いとは思わない。

固定長の形式ではなく、区切り形式を使用すると理想的です。データをExcelにインポートして区切り形式で保存してそこから移動するのはすばやく簡単です。

0

は、Excel、Accessは、VBやC#のすべての種類は、通常の列をマッピングするための視覚教材で、仮想データベース・テーブルなどのテキストファイルを処理するための使いやすいドライバを持っています。もちろん、SQL Serverへの読み書きはケーキです。私はそこから始めるだろう。

100K行は、複数のクライアントに対して1時間ごとに実行している場合を除き、問題ではありません。

+0

そのようなドライバーの例を教えてください。 – Jim

+0

ここからは、ODBCからLINQまで、それらのすべての仲間があります。任意の略語をソースタイプと目的地と組み合わせると、Googleがあなたの友人になるはずです。 http://devblog.virtage.com/2009/02/microsoft-database-technologies-babylon-odbc-ole-db-ado-jet-isam-mdac-linq/ – dkretz

0

私はCSVパーサを探していたとき、私はしばらく前にFile Helpers渡って来ると思います。私がリンクした例では、属性で装飾された基本的なPOCOを使用して、解析しようとしているファイルを表す方法を示しています。したがって、ファイルを解析するためには、顧客固有のPOCOが必要です。

私はこれを試していませんが、一見の価値があります。

関連する問題