[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[orca-users:01776] Re: potato から woody のデータ移行失敗



おはようございます。
岡部@徳島です。

化石スレッドで申し訳ありませんが、potato→woodyのEUCコードの壊れたデータ移行が、
やっとできましたのでご報告します。

中山さまと同じ方法では、つまらないので、Linux上でできる方法を考えておりました。
当初、Redhatの pg_filedump ( http://sources.redhat.com/rhdb/tools.html )と
エディタでごりごり修正しようかとも思いましたが次のような方法で行うことにしました。

1.まずpotato版ORCAのデータ出力でデータCSVで取り出す。
2.EUC-JP以外のコードをはねるスクリプト( http://www.sra.co.jp/people/t-ishii/PostgreSQL/mhonarc/pgsql-jp/2002Jun/msg00282.html を改
造)で文字化けしているデータを削除。
3.修正したデータをpostgresユーザからcopy tbl from 'CSV' using delimiters ',';で書き
込む。

と思って壊れていたtbl_hknnumをCSVで取り出して見たところ、入力文字列の後に
ゴミを発見し削除。
そのまま3.したところPostgreSQL7.2でも通りました。
念のため一度pg_dumpして再度読み込ませましたが、OKのようです。
結局、いろいろやった割には、あっけなく解決してしまいました。
でもいままであまり知らなかった漢字コードの勉強ができ、有意義でした。

もうすぐ、チェックプログラムができるでしょうから、あまり参考にならないと思います
が、格闘している方の励みになれば幸いです。

P.S
サポートの方には連絡しましたが、tbl_hknnumに一部重複して登録されているデータ
があるようです。実務には差し支えないと思いますが・・・

                            徳島市潜睺睺睺睺須野437-3
                            岡部内科クリニック
                            岡部 達彦
                            okabe@xxxxxxxxxxxxxxxxxxx

----- Original Message -----
From: "中山裕雄" <hnaka@xxxxxxxxxxxxxxx>
To: <orca-users@xxxxxxxxxxxxxx>
Sent: Wednesday, October 02, 2002 4:05 PM
Subject: [orca-users:01665] potato から woody のデータ移行失敗


> 中山裕雄@鳥取県です。
>
> > これでpotatoのデータをDB丸ごと入れ替えれば
> > めでたくデータ移行完了したwoody版ORCAになります。
> > (DB構造が同じはず、確認はしていませんが。)
>
> こう書きましたが、実はうまく行きませんでした。
>
> potato版ORCA(0.9.35)のデータをdumpして
> woody版ORCA(0.9.35)の入ったPCへコピーします。
>
> 伊藤さんに教えて頂いたとおり
>
> $ dropdb orca
> $ createdb orca
> $ psql orca < (ダンプファイル)
>
> を行ったところ
>
> ERROR: copy line 949, Invalid EUC_JP character sequence found (0xa100)
> lost synchronization with server,resetting connection
> 0xa330でも同様のメッセージが出ました。
>
> DBの中身を調べるとテーブルは問題なく作製されていて
> tbl_ptinf以外のデータも問題なく移行できていました。
>
> ところがtbl_ptinfだけが空でデータ移行に失敗していました。
>
> dumpファイルに問題があるのかと思ってpotatoで
> createdb orcatestを作成して dumpファイルを読み込むと
> エラー無く再構築できます。
>
> 試しにpgaccessを使ってpotatoのtbl_ptinfの中身をエクスポートして
> そのファイルをwoodyでインポートすると今度は
>
> Invalid EUC_JP character sequence found(0xaa00)
>
> とやはりエラーでインポートできません。
>
> ちなみにpotatoもwoodyでも DBのエンコードはEUC_JPに
> なっているのも確認しました。
> また、そもそも患者データも正規の移行プログラムを使用して(ver4.0)
> 移行したものです。
>
> potatoからwoodyへのデータ移行は今回は正式な手順はアナウンスされていない
> のであくまでも自己責任ですが、他には同様の現象に遭遇された方は
> ありませんでしょうか?
>
> 中山小児科内科医院
> 中山裕雄