徒然日々草(改×2)

生きものネタを時々あっぷ。ほぼ昆虫。ときどき植物。たまに背骨のある動物。

テキストデータをテーブルにコピー。

2005-01-07 21:51:58 | メモ
 今日覚えたこと。
 前々から,MacOS10.2に付属しているテキストエディタでタブ区切りのテキストファイルを作っても,それをPostgreSQLのテーブルにうまくcopyできなかった件に関してのメモ。

¥copy テーブル名 from テキストファイル名(全パス)

 最初,テキストファイルをデスクトップに作った「あいてむ」と言う名前のフォルダに入れたまま実行したら,「そんなファイルはない!」といわれた。が,デスクトップに出したら認識したらしい。なんでやねん。フォルダ名が日本語やったからか?
 もとい。でも,やっぱりなんかダメっぽいらしく,


ERROR: literal newline found in data
HINT: Use "\n" to represent newline (--実際は"¥"はバックスラッシュ)


とかいってきた。
 ファイルの文字コードはEUCなので問題ないはず。改行文字を入れろと言うことなのかと思って「\n」をつけてみたけど意味無し。(あたりまえだ。)実際はMacのテキストエディタで使われている改行コードがPostgreSQLで使われる改行コード(UNIX系)と異なっていたかららしい。

 結局,改行コードを変換する(文字コード自体も変換できる)フリーソフト(http://www.vector.co.jp/soft/mac/util/se285278.html)をダウンロードしてきて,UNIXで使われる改行コードに変換したら,難なくうまくいきました。すばらしい。見かけはかわんないけど,ターミナルでcatとかlessとかしてみたら,悲惨だったことがありあり(^^;)。
 よくわかんないけど,
OS 改行形式 漢字コード
UNIX LF JIS, EUC, (ShiftJIS)
Win CR+LF ShiftJIS
Mac CR ShiftJIS

とかなっているらしい。OSXはUNIXベースになっているからと言ってだまされてはいけない。(だまされる以前に,改行コードの違いも知らなかったわけだが)

 とりあえず,ブログでテーブルのタグ打つのめんどくさいな(笑)。まあ,そんな感じ。次回もうまくいくといいね。