ORCA のエンコーディングを UTF-8 に変換
当院開業当時 orca の漢字コードは euc-jp で、開業以来ずっとだらだら使用してきた。しかし、今時さすがに euc はないだろうと思って、思い切って utf-8 に変換することにした。変換方法は web に公開されている方法にしたがった。
- jma-dbconvert.sh に -t オプションを付けてチェックしたところ、不正文字が検出された。
$ sudo -u orca ./jma-dbconvert.sh -t データベース [orca] エンコーディング [EUC_JP] ロケール [C] [C] OK: 拡張漢字無効 データベースに不正な文字が入っていないかチェックします... ERROR: データベースに不正な文字がありました ERROR: /tmp/jma-receipt_db_check.log を参照して修正する必要があります $ cat /tmp/jma-receipt_db_check.log TABLENAME: public.tbl_prgoption 1 A506HC03V03 EXPLANATION 帳票名:外来請求書兼領収書\nプログラムID: : : ERROR2: ☒・〓"\x8F\xA1\xA6" from EUC-JP to UTF-8 (Encoding::UndefinedConversionError) TABLENAME: public.tbl_prgoption 1 A504HC03V04 EXPLANATION 帳票名:領収書兼明細書\nプログラムID: : : ERROR2: ☒・〓"\x8F\xA1\xA6" from EUC-JP to UTF-8 (Encoding::UndefinedConversionError)
- 不正文字が入っているテーブルを削除する。
orca=> delete from tbl_prgoption where prgid='A506HC03V03'; DELETE 2 orca=> delete from tbl_prgoption where prgid='A504HC03V04'; DELETE 2 orca=>
- 再チェックで OK になった。
$ sudo -u orca ./jma-dbconvert.sh -t データベース [orca] エンコーディング [EUC_JP] ロケール [C] [C] OK: 拡張漢字無効 データベースに不正な文字が入っていないかチェックします... OK: 不正な文字はありませんでした
- 変換開始。
$ sudo -u orca ./jma-dbconvert.sh SET SET SET SET SET set_config ------------ (1 row) : : ALTER DATABASE OK
- A506HC03V03、A504HC03V04 は sky.sh 様のカスタマイズ帳票なので、sky.sh 様カスタマイズ帳票を web ページ記載に従って削除、再インストールした。
以上で、無事 utf-8 変換が完了した。思ったより簡単で、その後の実運用でもトラブルはなかった。