Oracle APEXのアプリケーションへタイムゾーンを設定する方法について、以前にこちらの記事を書いています。以前の記事では、利用者側のタイムゾーンをどのようにOracle APEXのアプリケーションに反映させるか、という方法について説明しています。そうではなく、単にアプリケーションが指定したタイムゾーン、例えば、日本時間で動いてくれれば良い、という場合もあるでしょう。
アメリカでも中国でも、どこからのアクセスでも日本時間で動いてくれたら良いのだけど、サーバーはアメリカにあって、サーバー側のタイムゾーンは変えられない、といった場合にできることを紹介します。アプリケーションの共有コンポーネントから、セキュリティ属性を開きます。
データベース・セッションのセクションの初期化PL/SQLコードに、タイムゾーンを設定するALTER文を記載します。
BEGIN
EXECUTE IMMEDIATE 'alter session set time_zone = ''Asia/Tokyo'' ';
END;
変更の適用をクリックすると、設定したアプリケーションのセッション・タイムゾーンが日本時間になります。
自動タイムゾーンの設定では、ブラウザ上でJavaScriptを動かして取得した時差を、CGIのパラメータtzにセットしてアプリケーションに返すといった、一手間というか一往復のリクエストが追加で発生します。画面左上にSet Time Zoneと表示されている間に行われている作業です。
タイムゾーンを固定するだけであれば、上記のように設定することで、その作業を除くことができます。
完