0

次のような .csv ファイル データがあります。

"UPRR 38 PAN AM "M"","1"

そして、2つの列(aおよびb)を持つ以下のコマンドを使用して、データをテーブルにロードしました。

LOAD DATA LOCAL INFILE 'E:\monthly_data.csv'
INTO TABLE test_data_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';

しかし、テーブルを選択すると、以下に示す予期しない結果が得られます。

a内容:

UPRR 38 PAN AM "M","1

...そして b はNULLです。

ありがとう

4

2 に答える 2

1

あなたはこれを持っています:

ENCLOSED BY '"'

したがって"、もはや通常のキャラクターではありません。これは特別な意味を持つ特殊文字で、列の値の開始と終了を強調します。"そのように動作しないa を入力したい場合は、エスケープする必要があります。RFC 4180 - Common Format and MIME Type for Comma-Separated Values (CSV) Filesドキュメントでは、その方法が説明されています。

二重引用符を使用してフィールドを囲む場合、フィールド内に表示される二重引用符は、その前に別の二重引用符を付けてエスケープする必要があります

a;b
"UPRR 38 PAN AM ""M""";1

彼らが言うように、ガベージ イン、ガベージ アウト ;-)

于 2014-05-06T15:06:01.203 に答える