[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 メーリングリストの案内