Oracle APEXの最新の修正は、My Oracle Supportよりダウンロードすることができます。
https://www.oracle.com/tools/downloads/apex-downloads.html
Patch Set Bundleのリンクをクリックすると、My Oracle Supportのパッチ詳細のページへリダイレクトされます。パッチをダウンロードするには、登録されているアカウントによるサインインが必要です。
2022年11月29日時点でダウンロードできたファイルはp34628174_2220_Generic.zipでした。このパッチをAPEX 22.2の環境に適用します。
現行の確認
管理サービスもしくは開発環境にサインインし、ヘルプの情報を開きます。
詳細の製品のバージョン番号を確認します。
最初のスクリーンショットの画面に以下の記述があります。最新のパッチを適用すると製品のバージョンは22.2.1に変わります。現状は22.2.0なので、パッチは未適用であることがわかります。
The Patch Set Bundle was last updated on November 28, 2022 and its PATCH_VERSION is 1. When this patch is applied, the APEX product version will be updated to 22.2.1.Oracle APEXが実行されているデータベース・サーバーからインターネットへの接続ができるようになっていると、開発環境のトップ画面にパッチが利用可能であることが表示されます。
[oracle@apex ~]$ sqlplus sys/oracle@localhost/xepdb1 as sysdba
SQL*Plus: Release 21.0.0.0.0 - Production on Tue Nov 29 10:07:06 2022
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Connected to:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
SQL> set serveroutput on
SQL> exec dbms_output.put_line(apex_instance_admin.get_parameter('IMAGE_PREFIX'));
/i/22.2.0/
PL/SQL procedure successfully completed.
SQL>
パッチの適用
ユーザーoracleにて作業を行います。パッチのファイルは/home/oracle以下にアップロードしておきます。
最初にパッチ・ファイルp34628174_2220_Generic.zipをunzipコマンドで解凍します。zipファイルが解凍されて、ディレクトリ34628174が作成されます。
[oracle@apex ~]$ unzip p34628174_2220_Generic.zip
Archive: p34628174_2220_Generic.zip
inflating: 34628174/wwv_flow_approval.plb
inflating: 34628174/wwv_flow_authentication.plb
inflating: 34628174/wwv_flow_data_parser.plb
inflating: 34628174/wwv_flow_developer_toolbar.plb
inflating: 34628174/wwv_flow_imp_shared.plb
inflating: 34628174/wwv_flow_interactive_grid.plb
[中略]
inflating: 34628174/images/apex_ui/css/DevTools.min.css
inflating: 34628174/images/apex_ui/css/Theme-Standard.min.css
inflating: 34628174/images/apex_ui/css/Theme-Dark.min.css
inflating: 34628174/images/apex_ui/css/Theme-Dark.css
[oracle@apex ~]$ ls
34628174 apex i META-INF p34628174_2220_Generic.zip
[oracle@apex ~]$
作成されたディレクトリ34628174へ移動します。環境変数NLS_LANGおよびその他の環境変数を設定します。
[oracle@apex ~]$ cd 34628174/
[oracle@apex 34628174]$ . oraenv
ORACLE_SID = [oracle] ? XE
The Oracle base has been set to /opt/oracle
[oracle@apex 34628174]$ export NLS_LANG=American_America.AL32UTF8
[oracle@apex 34628174]$
パッチの適用前にOracle REST Data Servicesを停止します。systemctl stop ordsを実行します。
[oracle@apex 34628174]$ systemctl stop ords
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to stop 'ords.service'.
Authenticating as: root
Password: ********
==== AUTHENTICATION COMPLETE ====
[oracle@apex 34628174]$
[oracle@apex 34628174]$ sqlplus sys/********@localhost/xepdb1 as sysdba
SQL*Plus: Release 21.0.0.0.0 - Production on Tue Nov 29 10:30:05 2022
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Connected to:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
SQL> @catpatch.sql
. ORACLE
.
. Oracle APEX 22.2.%
. Patch Set Exception 34628174
........................................
APEX_VERSION
------------------------------
APEX_SCHEMA
--------------------------------------------------------------------------------
22.2.0
APEX_220200
PL/SQL procedure successfully completed.
Session altered.
APEX_SCHEMA
--------------------------------------------------------------------------------
APEX_220200
PL/SQL procedure successfully completed.
... Disabling Jobs
[中略]
PL/SQL procedure successfully completed.
... Enabling Jobs
PL/SQL procedure successfully completed.
...Validating APEX
...(10:30:20) Starting validate_apex for APEX_220200
...(10:30:21) Checking missing sys privileges
...(10:30:21) Re-generating APEX_220200.wwv_flow_db_version
... wwv_flow_db_version is up to date
...(10:30:21) Checking invalid public synonyms
...(10:30:21) Key object existence check
...(10:30:21) Setting DBMS Registry for APEX to valid
...(10:30:21) Exiting validate_apex
PL/SQL procedure successfully completed.
...Recompiling invalid public synonyms
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
timing for: Complete Patch 34628174
Elapsed: 00:00:12.00
Disconnected from Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
[oracle@apex 34628174]$
catpatch.sqlによるパッチ適用開始初期に適用前の状況が画面に出力されます。catpatch.sqlが終了する前に、インストールの検証(Validating APEX)が実行されます。
select patch_number, patch_version, installed_on from apex_patches order by installed_on;
SQL> select patch_number, patch_version, installed_on from apex_patches order by installed_on;
PATCH_NUMBER PATCH_VERSION INSTALLED_ON
------------ ------------------------------ -------------------
34628174 1 2022-11-29 10:30:21
SQL>
[oracle@apex 34628174]$ cp -r -p images/* /home/oracle/i/22.2.0/
[oracle@apex 34628174]$
CDNを参照している場合は、ダウンロードのページに記載のあるように変更は不要です。
For APEX product versions 22.2.0 and 22.2.1 use https://static.oracle.com/cdn/apex/22.2.0/. The CDN contains the production APEX 22.2 static resources and the updated static resources included in PATCH_VERSION 1.
変更が必要な場合は、APEX_INSTANCE_ADMIN.SET_PARAMETERを実行しIMAPGE_PREFIXを更新します。