0

まだExcelにあるcsvファイルからデータを読み込もうとしています。これまでのところ、これは私がSQLクエリとして持っているステートメントです:

LOAD DATA LOCAL INFILE 'C:\\Documents and Settings\\J03299\\Desktop\\TMETER.csv' 
INTO TABLE edata 
COLUMNS TERMINATED BY ',' ENCLOSED BY "" LINES TERMINATED BY '\n' 
(Year,Month,Day,MJD,xpiles,xstacks,Utilites); 

最初の行をインポートしてから、行 157 まで 1 行おきに無視しますか? 私は何が足りないのだろうか、それは私のデリメーターですか?'\n' で終了する行? 私のデータは次のようになります

2012,23,45,-0.876,3.456,768.50,

どういうわけか、ファイルの終わりを読んでいないと思います

おそらくこの情報をインポートするために使用できる他のツールはありますか

4

4 に答える 4

2
于 2012-06-05T01:01:49.837 に答える
1

問題を解決しました...テーブルを作成するときに年を主キーとして使用していたのは私の愚かな間違いでしたが、年は一意ではありません。2012 年と 2013 年の 2 つの値のみが表されるため、2012 の最初の行のみが読み取られ、後続の行はすべて同じであるため、2013 (次の一意の主キー) になるまでそれらを無視し、最初の行をそれからまたあきらめました。私の LOAD ステートメントの問題ではありませんでした。私を助けてくれてありがとう、データベーステーブルを作成するときはもっとうまくやるべきだった

于 2012-06-05T14:31:17.240 に答える
0

問題は、SQLクエリに次のものがあることです。

LINES TERMINATED BY '\n' 

ただし、データは「、」(コンマ)で終了します。

2012,23,45,-0.876,3.456,768.50,

その行を次のようなものに変更してみてください。

 LINES TERMINATED BY ',\n' 

もう1つの方法は、末尾のコンマを削除して入力データをクリーンアップすることです。

于 2012-06-05T01:48:09.190 に答える
0

Windows では、通常、改行文字U+000dの後に改行文字U+000aが続きます。マニュアルには次のように記載されています。

ノート

Windows システムでテキスト ファイルを生成した場合LINES TERMINATED BY '\r\n'、Windows プログラムは通常、行末記号として 2 文字を使用するため、ファイルを正しく読み取るために を使用する必要がある場合があります。などの一部のプログラムは、ファイルを書き込むときに行末記号としてWordPad使用する場合があります。\rこのようなファイルを読み取るには、LINES TERMINATED BY '\r'.

したがって:

LOAD DATA LOCAL INFILE 'C:\Documents and Settings\J03299\Desktop\TMETER.csv'
    INTO TABLE edata
    COLUMNS
        TERMINATED BY ','
        ENCLOSED BY ''
    LINES
        TERMINATED BY '\r\n'
    (Year, Month, Day, MJD, xpiles, xstacks, Utilites)
于 2012-06-05T01:07:30.037 に答える