[pgsql-jp: 34620] Re: selectがうまくできません

大道 裕 daidou @ ca2.so-net.ne.jp
2005年 1月 11日 (火) 23:30:45 JST


大道です。

さっそくのご返事、ありがとうございました。
すぐに試そうとしたのですが、うまくいかずに、返事が遅く
なってしました。(質問と関係のない部分で、問題がありま
して...)

$ nkf -e suiei.dump > suiei.dump.new
として
$ psql -e suiei < suiei.dump.new
とすると
value too long for type character(10)
とでて、途中のレコードのフィールドが1つずれています。

これをとりあえず、手直ししてみようと思ったのですが、
FedoraCore3のviでEUC_JPが文字化けして読めず、これの
解決に一日かかってしまいました。

調べて分かったのは、とんでもないアホなことをやって
いたことです。
namaeをcharacter(16)にしているのに、リレーのチーム名
(10文字以上)をcopyで入力していたことです。
select文では、namaeは8文字分、つぎのフィールドの
shozokuもちゃんと表示されるのですが、pg_dumpすると、
そのレコードは文字化けしています。
それを「nkf -e」するとちゃんと表示されるのですが、その
間の「タブ」がなくなって、フィールドがずれてしまってい
たのです。

このレコード数はかなりあるので、とても手作業では直せません。

そこで、fedoraCore3のデータベースのテーブルに元データを
直接copyで貼り付けようと思ったのですが、integerの「junni」
が入力されていないデータのところでエラーになります。
invalid input syntax for integer: ""

postgresql-7.1.3-4bp.2では、問題なくcopyできたのですが、
postgresql-7.4.6-1.FC3.2では、仕様が変わったのでしょうか。

結局、junniの無いところに「0」をいれて、copyしました。

selectした結果は同じで、同じ文字数のものが多数選択されます。

もう少し、単純なテーブルを作って試してみようと思います。

tomson wrote:

> pgrootuser=#CREATE DATABASE suiei ENCODING=1;
> 
> として、EUCでデータベースを作ってください。
> 

> [user @ server user]$nkf -e suiei.dump > suiei.dump.new
> 
> などとして、文字コードを完全にEUCに直してから、
> [user @ server user]$createdb suiei
> [user @ server user]$psql -e suiei < suiei.dump.new
> 
> とすれば、うまくゆくかと思われます。
> 

-- 
****************************************
   大道 裕

   かわうそ会ホームページ
http://suiren.mitaka.tokyo.jp/kawauso/

   三鷹市水泳連盟ホームページ
http://suiren.mitaka.tokyo.jp/
****************************************
 




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