現在地

Oracle 製品における改元の影響について

*以下は、サポート契約締結中のお客さまに毎月配信しているサポートレターより一部抜粋して掲載しています。

和暦と元号の変更(改元)

昨年12月に内閣から2019年5月1日に改元が行われる旨が発表されました。これにより和暦上の平成年間は2019年4月30日で終了し、翌2019年5月1日からは新元号に基づいた暦が使用されることとなります。

和暦では西暦年の中途で改元が行われた場合、新元号が年初まで遡及することがなく、改元実施日までは以前の元号が使用されるため、以下の例のように同一の西暦年中に複数の元号が混在します。

例 : 西暦 1926 年

  • 1926年1月1日〜12月24日 : 大正15年
  • 1926年12月25日〜12月31日 : 昭和元年

Oracle 製品と和暦

Oracle 製品では原則として日付データを和暦形式で保持しないため、改元が実施されても製品内で持っている日付データに影響が及ぶことはございません。ただし、システム内で日付データの表示時に和暦形式に変換して出力を行っている場合には、なんらかの対策が必要となります。

※ 本項における「Oracle 製品」は弊社で取り扱っている製品群を指しております。Oracle E-Business Suite 等 Application カテゴリの製品については上記の通りであることを保証いたしかねますので、その旨ご留意ください。

日付データを和暦形式に変換する仕組みを AP / DB のどの箇所に実装するかはシステム設計に依存します。和暦形式でのデータ出力が存在する場合でも、必ずしも Oracle 製品内での対策が必要とは限りませんが、Database / Middleware 製品それぞれについて確認すべきポイントは存在しますので、以下で該当ポイントをご案内いたします。

Oracle Database 製品群での確認ポイントと対策

Oracle Database 関連製品群では、データベースの初期化パラメータ "NLS_CALENDAR" の値が "Japanese Imperial " に設定されている場合、出力日付が和暦形式となります。該当のパラメータは OS の環境変数によってオーバーライドすることも可能です。

参考

また、以下のように SQL 内での変換を実装することも可能です。

SQL 例

SQL> SELECT TO_CHAR(SYSDATE, 'EEYY"年"MM"月"DD"日"', 'NLS_CALENDAR = ''Japanese Imperial''') AS 和暦日付 FROM DUAL;

和暦日付
------------------------------------------
平成30年01月25日

従いまして、データベースレイヤーで確認すべき点は以下の3点となります。

  1. データベースのパラメータ設計における NLS_CALENDAR の値
  2. OS の環境変数設計における NLS_CALENDAR の値
  3. 実装 SQL 内で明示的に NLS_CALENDAR を Japanese Imperial に指定している箇所が存在しないか

確認の結果、和暦への変換がデータベースレイヤーに実装されているようであれば、対策としてデータベースのカレンダーをカスタマイズし、新元号に対応したカレンダーに変更する必要があります。

カレンダーの設定方法はプラットフォーム依存のため、各 OS に対応したマニュアルおよび、下記の Oracle 社公開ドキュメントをご参照ください。たとえば、Linux の場合には $ORACLE_HOME/nls/ ディレクトリに存在する lxegen ユーティリティを使用して、新元号の設定を追加した設定用ファイル lxecal.nltをコンパイルすることで、新元号に対応した和暦出力が可能となります。

参考

※ こちらのドキュメントは本文書にも添付しております。

Oracle Fusion Middleware 製品群での確認ポイントと対策

Oracle Fusion Middleware 関連製品群では、原則として製品自体の機能による和暦対応は行っておりません。このため、ミドルウェアのレイヤーで和暦を実装するための手段としては、通常以下のいずれかを採用することとなります。

  • データベースに和暦形式の日付データを要求する SQL を発行するよう設定する
  • お客様側で和暦対応用のプログラムを追加実装する

すなわち、ミドルウェアのレイヤーでは以下の 2 点について和暦対応のための実装が存在しないかをご確認ください。

  1. 製品内で実装している SQL
  2. 製品に追加で実装したカスタムプログラム

Oracle Fusion Middleware 製品群は基幹となる WebLogic Server を除きカスタマイズの箇所が多いため、チェック対象箇所もたとえば Oracle Publisher におけるレポートテンプレートに記述された SQL や、Oracle BPEL プロセスにおけるペイロード加工のための記述等、多岐に渡ることが想定されます。Oracle Fusion Middleare 製品群を現在もしくは今後実装される場合には、チェックを円滑に行うためにも、カスタマイズ部分を明確に資料化しておくことをお奨めいたします。

なお、上述のように本レイヤーにおける和暦対応は原則としてカスタマイズによって実装されるため、製品内での対策を実施する必要はありません。カスタマイズ部分に対して新元号への対策を施して頂ければ、対策としては充分となります。

まとめ

来年5月に予定されている改元はお客様のシステムにも影響を与えうるイベントです。
Oracle 製品についても対処が必要となる可能性がありますので、導入製品に合わせた確認と対策をご検討ください。

※ 本記事は2018年1月25日時点での情報となります。ご紹介した内容について、今後変更される可能性がございます。予めご了承ください。

(オラクル事業部 サポート・サービス担当 平林)