[pgsql-jp: 33638] Re: EOF の問題について

Yasuharu Ninomiya ninomii @ fml.nirs.go.jp
2004年 7月 13日 (火) 11:40:57 JST


毎度お騒がせしています二宮です。

皆様、本当に暖かいアドバイス有り難うございます。
無事、改行コードの問題は解決致しました(EOFの問題ではなかったようです)。
感謝致します。

失敗の原因は文字変換ツールiconvで改行コードも変換できている
と思い込んでいた為でした。

仲村さんのお教え下さいましたNFK変換ツールと
もりさんのお教え下さいましたcatコマンドでの改行コードの変換の
どちらでも無事、テーブルへのデータの取り込みが成功致しました。

本当に有り難うございます。

二宮


下記詳細;

改行と文字code変換,成功方法(EOFではない);成功
ポイント;文字変換ツールiconvでは改行コードは変換できない。

改行と文字code変換,成功方法1;;2004.7.の仲村さんのアドバイスに従う。
OSX用変換ツールMacNKF_OSX1.4使用
(http://www.vector.co.jp/soft/mac/util/se285278.html?yよりdownload)
(使用方法;backup済みのfileをアイコンにdropするだけ。変換選択メニューで改行
コード変換も選択し、EUC-JPとUnixの変換コードを選択。瞬時にfileが変換される)。

g4almi:/Users/shared/id1 ninomiya$ emacs id1promtfse3nkf.txt
変換をemacsで確認;
V$STAT6_02|10093|-|0.942|0.936|aAGAATca
V$AP1_Q4_01|10094|+|0.918|0.857|agAATCAt
V$GATA_Q6|10094|-|0.825|0.815|aGAATCa
V$EN1_01|10095|-|0.806|0.794|gaATCAT
最後の行の改行には特に変換前と後で見た目には違いはない。また、¥nは見当たらな
い。この改行は以前のemacsでの手入力したものとは異なっているコードと思われる
(emacsで改行や最後の行に¥n入れてもエラーになる;後述の参考情報04.7.13を参照)
。

test-# ¥copy id1tfs from /Users/shared/id1/id1promtfse3nkf.txt with
delimiter '|'
¥.
test-# select * from id1tfs limit 10;
ERROR:  syntax error at or near "ERROR" at character 1
(このエラーは直前のcopy 処理が終了していない為生じたと思われる。)
test=# select * from id1tfs limit 10;
   name    | posi | strand |  hm   |  tfs  |      seq

------------+------+--------+-------+-------+----------------

 V$CAP_01   |    1 | +      | 0.984 | 0.979 | CCATTttg

 V$CEBPA_01 |    1 | +      | 0.858 | 0.726 | ccATTTTgtggatg

 V$CEBP_Q2  |    1 | +      |  0.79 | 0.716 | ccATTTTgtggatg

 V$CIZ_01   |    1 | -      |   0.8 | 0.746 | ccaTTTTGt

 V$EVI1_06  |    1 | -      | 0.791 | 0.741 | ccatTTTGT

 V$GKLF_01  |    1 | -      | 0.905 |   0.8 | CCATTttgtggatg

 V$HNF3_Q6  |    1 | -      | 0.801 | 0.789 | ccATTTTgtggat

 V$HOXA4_Q2 |    1 | -      | 0.939 | 0.856 | CCATTttg

 V$PAX2_02  |    1 | -      | 0.951 |  0.94 | cCATTTtgt

 V$SOX5_01  |    1 | -      | 0.815 | 0.706 | ccATTTTgtg

(10 rows)
test=# 
成功。

 


改行と文字code変換,成功方法2;bashでコマンドで施行例;
2004.7.10; pgsql-jpの会のもりさんのアドバイスに従う。

g4almi:/Users/shared/id1 ninomiya$ cat id1promtfse3.txt | tr '¥r' '¥n' >
id1promtfse3return.txt
 
変換前後でemacsで見た目に差はない。;id1promtfse3return.txt
V$STAT6_01|10093|-|0.960|0.933|aaGAATCa
V$STAT6_02|10093|-|0.942|0.936|aAGAATca
V$AP1_Q4_01|10094|+|0.918|0.857|agAATCAt
V$GATA_Q6|10094|-|0.825|0.815|aGAATCa
V$EN1_01|10095|-|0.806|0.794|gaATCAT

test-# ¥copy id1tfe3 from /Users/shared/id1/id1promtfse3return.txt with
delimiter '|'
¥.
test-# select * from id1tfe3 limit 10;
ERROR:  syntax error at or near "select" at character 21
test=# select * from id1tfe3 limit 10;
   name    | posi | strand |  hm   |  tfs  |      seq

------------+------+--------+-------+-------+----------------

 V$CAP_01   |    1 | +      | 0.984 | 0.979 | CCATTttg

 V$CEBPA_01 |    1 | +      | 0.858 | 0.726 | ccATTTTgtggatg

 V$CEBP_Q2  |    1 | +      |  0.79 | 0.716 | ccATTTTgtggatg

 V$CIZ_01   |    1 | -      |   0.8 | 0.746 | ccaTTTTGt

 V$EVI1_06  |    1 | -      | 0.791 | 0.741 | ccatTTTGT

 V$GKLF_01  |    1 | -      | 0.905 |   0.8 | CCATTttgtggatg

 V$HNF3_Q6  |    1 | -      | 0.801 | 0.789 | ccATTTTgtggat

 V$HOXA4_Q2 |    1 | -      | 0.939 | 0.856 | CCATTttg

 V$PAX2_02  |    1 | -      | 0.951 |  0.94 | cCATTTtgt

 V$SOX5_01  |    1 | -      | 0.815 | 0.706 | ccATTTTgtg
(10 rows)
成功。


参考情報04.7.13;
Emacsで改行や最後の行末に¥nを手で入力したid1promtfse3.txtを使用しても下記の
ように受け付けてくれなかった。しかし上記のNKFやcat id1promtfse3.txt | tr
'¥r' '¥n' > id1promtfse3return.txtで施行した結果として改行もしくは、最後の行
末¥nが入っていても受け付けてくれた。Emacsでみると見た目には変換前と後では差
がなかった。

変換前後で見た目に違いない;id1promtfse3return.txt
V$STAT6_01|10093|-|0.960|0.933|aaGAATCa
V$STAT6_02|10093|-|0.942|0.936|aAGAATca
V$AP1_Q4_01|10094|+|0.918|0.857|agAATCAt
V$GATA_Q6|10094|-|0.825|0.815|aGAATCa
V$EN1_01|10095|-|0.806|0.794|gaATCAT¥n(ここが改行でも同じ)

test=# select name, posi, strand, hm, tfs, seq into id1tfe3 from
id1tfs;SELECT
test=# delete from id1tfe3
test-# ¥copy id1tfe3 from /Users/shared/id1promtfse3.txt with delimiter '|'
/Users/shared/id1promtfse3.txt: No such file or directory
test-# ¥copy id1tfe3 from /Users/shared/id1/id1promtfse3.txt with delimiter
'|'
¥.
ERROR:  literal newline found in data
HINT:  Use "¥n" to represent newline.
CONTEXT:  COPY id1tfe3, line 111535:
"V$EN1_01|10095|-|0.806|0.794|gaATCAT¥n"
test-#
失敗。




pgsql-jp メーリングリストの案内