0

LOAD DATA INFILE| で区切られた 20 個の .dat ファイルを MySQL テーブルにインポートするために使用しています。しかし、いくつかの | フィールド ターミネータはバックスラッシュでエスケープされます。以下の 2 番目のフィールドは例です。

1001604|EMERITUS CORP\WA\|SC 13G|1996-02-13|edgar/data/1001604/0000728757-96-000006.txt
1001604|EMERITUS CORP\WA\|SC 13G|1996-02-14|edgar/data/1001604/0000903949-96-000038.txt

DATE最後のフィールドが、最後から 2 番目のフィールドに対して宣言された型と競合するため、エラーが発生します。.dat ファイルを開いてエスケープをエスケープすることはできますが、より良い方法はありますか?

ストリーム エディターを使用してすべてのバックスラッシュを 2 つにすることもできますが、これはお勧めできません。FIELDS ESCAPED BYオプションを「\」以外に安全に変更できますか、それとも悪い考えですか? ありがとう!

これが私のLOAD DATA INFILEコマンドです:

LOAD DATA INFILE 'C:/users/richard/research/data/edgar/masterfiles/master_1996.dat'
    INTO TABLE edgar.master
    FIELDS TERMINATED BY '|'
    IGNORE 1 LINES;
4

1 に答える 1

4

ESCAPED BY ''myFIELDS句に追加すると、クエリをエラーなしで完了することができます。これがサイレント フェイルの原因であることが判明した場合は更新します。

于 2012-09-12T19:08:53.540 に答える