2011-10-21 7 views
0

LOAD DATA INFILE ...クエリを使用してMySQLデータベース(5.1.54)にロードする必要がある小文字のthornのファイルがあります。フィールドが非ASCII文字で終了するMySQL LOAD DATA INFILE

私がロードしようとしているファイルは、MySQLデータベースと同じサーバーにあり、MySQLマシンのクライアントライブラリを使用するSQLYogを使用してWindowsマシンからクエリを発行しています。私はいくつかの主要な問題を抱えている

は、私は私が考えることができるthorn文字のすべてのバリエーションを使用してFIELDS TERMINATED BY 0x00FE構文を使用して試してみた、と私は、接続(SET NAMES ...)の文字セットを変更しようとしましたが、私は一貫して警告を受ける...

...すべてのデータが最初の列に読み込まれます。

すべてでこれを回避する方法はありますか?それとも私がロードする前に、より賢明な文字で、すべてのthorn年代を交換するsedでファイルを前処理するために辞任したのですか?

答えて

0

私は、MySQLのLOAD DATA INFILE ...を理解するであろうことを文字に非ASCII文字を置き換えることで、ファイルを修正することを決めました。

  1. 使用od問題の文字の進バイト値を取得する - od -b file.logを - この場合は376です。

  2. grepを使用して、置換する文字がファイル内に存在しないことを確認してください。grep -n '|' file.log

  3. 非ASCII文字の代わりにsedprintfを使用してください。sed -i 's/'$(printf '\376')'/|/g' file.log

0

Data Import tool(CSV形式)のデータをdbForge Studio for MySQLに読み込むことに成功しました。私はちょうどカスタムデリミタとして 'Þ'を設定します。 CSV形式からのインポートは、無料のExpress Editionで完全にサポートされています。

+0

これはオプションですが、理想的には、DBと同じサーバーからファイルをインポートする方法を探したいと思います。 – chattsm

+0

このファイルは、アプリケーションにアクセスできる必要があります。データインポートツールは、コマンドラインをサポートしています(それが可能であれば、もちろん)は、サーバー上で、それを自動化することができます。 – Devart

関連する問題