« 2021年12月 | トップページ

2022年4月

2022年4月 9日 (土)

ORCA のエンコーディングを UTF-8 に変換

当院開業当時 orca の漢字コードは euc-jp で、開業以来ずっとだらだら使用してきた。しかし、今時さすがに euc はないだろうと思って、思い切って utf-8 に変換することにした。変換方法は web に公開されている方法にしたがった。

  1. 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)
    
  2. 不正文字が入っているテーブルを削除する。
    orca=> delete from tbl_prgoption where prgid='A506HC03V03';
    DELETE 2
    orca=> delete from tbl_prgoption where prgid='A504HC03V04';
    DELETE 2
    orca=>
    
  3. 再チェックで OK になった。
    $ sudo -u orca ./jma-dbconvert.sh -t
    データベース [orca]
    エンコーディング [EUC_JP]
    ロケール [C] [C]
    OK: 拡張漢字無効
    データベースに不正な文字が入っていないかチェックします...
    OK: 不正な文字はありませんでした
    
  4. 変換開始。
    $ sudo -u orca ./jma-dbconvert.sh 
    SET
    SET
    SET
    SET
    SET
     set_config
    ------------
    (1 row)
      :
      :
    ALTER DATABASE
    OK
    
  5. A506HC03V03、A504HC03V04 は sky.sh 様のカスタマイズ帳票なので、sky.sh 様カスタマイズ帳票を web ページ記載に従って削除、再インストールした。

以上で、無事 utf-8 変換が完了した。思ったより簡単で、その後の実運用でもトラブルはなかった。

« 2021年12月 | トップページ