2

いくつかのデータ列を持つ CSV ファイルがあります。

CSVファイルは次のようになります

field1: Test1
field2: Test2
field3: Test3、Test4、Test5

この場合、どのライブラリをフィールド ターミネータとして使用できますか。つまり、このクエリを使用して CSV ファイルをshopifyitemテーブルに挿入すると、データ フィールドが正しく挿入されていないと想定されます。

BULK INSERT shopifyitem
FROM 'c:\test.csv'
WITH
(
   FIELDTERMINATOR = ',',
   ROWTERMINATOR = '\n'
)

では、どのフィールド ターミネータを使用できますか?

よろしくお願いします。

4

4 に答える 4

1

なんらかの前処理なしでは、そのフォーマットをインポートすることはできないと思います。アーロンが示唆したように、それは標準のCSVではありません。

ファイルを再フォーマットできない場合は、データをインポート可能なフォーマットに変換する方法がいくつかあります。

http://www.timmitchell.net/post/2013/01/14/ragged-flat-file-processing-in-ssis/

http://www.rad.pasfu.com/index.php?/archives/38-Script-Component-as-Source-SSIS.html

http://msdn.microsoft.com/en-us/library/ms136060.aspx(「フラットファイルソースの例」までスクロールダウンします)

これらはすべて、作業の大部分に.NETを活用するSSISソリューションです。生産性向上ツールが組み込まれているという理由だけで、SSISが好きです。これは、コンソールアプリやPowerShellスクリプトなどの任意のテキストプロセッサを使用して実行できます(実際に時間があれば)。

私はストリームリーダーを備えたスクリプトコンポーネントソースを好みますが、TimMitchellには興味深い代替手段があります。

于 2013-01-30T03:04:13.907 に答える
1

使用してみてください:
ROWTERMINATOR = '0x0a'

于 2014-01-16T12:39:08.977 に答える
0

これは、テキストまたは csv ファイルをデータベースにインポートするためのコードです。

String SQL = "BULK INSERT [staging_db].[dbo].[TEST] FROM 'D:\\test.txt' WITH (FIELDTERMINATOR = ',',ROWTERMINATOR = '\n')";
于 2013-06-17T12:09:09.550 に答える