0

持っている大きな CSV ファイルを使用して SQL INSERT クエリを作成したいと考えています。問題は、名前が解析されないことです。名前と苗字を区別するため、"John" と "Doe" ではなく "John Doe" または "John B Doe" としてリストされています (ミドルネームのイニシャルは気にしません)。

もう 1 つの問題は電話番号です。ほとんどは「555 555 5555」と記載されており、未完成のものもあり (「555 555」)、「5555555555」または「15555555555」と記載されているものもあります。どこから始めればいいですか?私はいくつかのグーグルを行って、この特定の問題に至りませんでした。私は言語にうるさいわけではありません。ただし、私は C# または PHP に最も精通しています。おそらく C++ または BASIC でも実現できるでしょう。私の質問は、本当に、どこから始めるべきかということです。ありがとう。

SQL フィールド: fname、lname、address、city、state、zip、phone(#-###-###-####)、email

CSV の例: 「John M Doe」、「156 Blue St」、「Nashville」、「TN」、「23434」、「(555) 555-5555」、「ex@ex.com」

CSV の例 2: "John Doe"、"156 Blue St"、"Nashville"、"TN"、"23434"、"555 555-5555"、"ex@ex.com"

CSV の例 3:「John & Jill Doe」、「156 Blue St」、「Nashville」、「TN」、「23434」、「5555555555」、「ex@ex.com」

4

2 に答える 2

0

データベースにデータをインポートするために CSV を解析していると仮定すると、中間テーブルに一括挿入を行い、実際のテーブルにコミットする前にそのテーブルのフィールドを解析します。CSV の各行を読み取ってクライアントで解析しようとすると、大量のメモリを使用することになり、低速になりますが、これを行うのに役立つ .net ライブラリがたくさんあります。詳細については、TheCodePlex を検索できます。

一括挿入の使用方法に関するリンクは次のとおりです。

http://technet.microsoft.com/en-us/library/ms175915.aspx

挿入テーブルから実際のテーブルに解析するには、c# または t-sql を使用できます。ルールに従って各フィールドをループして解析するだけです。それを行うには、おそらく何百万もの方法があります。私はただ実験を始めるだけです。RegEx の使用を検討することができます。

http://regexlib.com/?AspxAutoDetectCookieSupport=1

または

数値文字列の解析 (またはこのようなもの - 私の Google 検索は c# 解析文字列でした) http://msdn.microsoft.com/en-us/library/xbtzcc4w.aspx

于 2013-11-05T02:04:21.237 に答える