2023年4月7日金曜日

Oracle Database 23c Free - Developer Release on VirtalBoxでAPEXを使う

 Oracle Database 23c Freeは、VirutalBoxの仮想マシンでも提供されています。米国オラクル本社所属のデータベース・ツールのPM、Jeff Smithさんが彼のブログにて、提供されているVirutalBoxについて詳しく紹介されています。

Oracle Database 23c Free – Developer Release on VirtualBox

ダウンロード

以下が概要になります。
  • 23c, specifically 23.2 installed with a PDB already created
  • the pdb has sample schemas and their data pre-loaded
  • ORDS 23.1 installed, configured, and running
  • HR user is REST Enabled, you can can login to SQL Developer Web
  • APEX 22.2 is installed
  • local port forwards for 8080 and 1521, so you can use your desktop database tools and browsers to work with the database
上記の仮想マシンをダウンロードした後、VirtualBoxにインポートして起動し、Oracle APEXの使い勝手を確認してみました。残念なことにAPEXは日本語化されていませんでした。

以下より、日本語リソースをロードする方法を紹介します。手順自体は、一般的なOracle APEXの言語リソースのロード作業です。

ダウンロードしたOracle_Database_23c_Free_Developer_Appliance.ovaをVirtualBoxにインポートした直後の状態から作業を始めます。

インポートした仮想マシンを起動すると、データベースとORDSも同時に起動します。

ターミナルも開きますが、私の環境ではキーマップが異なり、この画面のターミナルからの作業は今ひとつでした。


ネットワークポートフォワーディングの設定を確認すると、sshのポートがホストの2222に割り当てられています。


なので、ローカルのマシンのターミナルからSSHで接続し、作業をすることにします。

ssh -p 2222 oracle@localhost

% ssh -p 2222 oracle@localhost

oracle@localhost's password: ********

Activate the web console with: systemctl enable --now cockpit.socket


Last login: Fri Apr  7 05:06:02 2023

[oracle@localhost ~]$ 


仮想マシンにはOracle APEXの言語リソースが含まれていません。インストールされているOracle APEXのバージョンは2023年4月時点の最新のバージョンである22.2であるため、最新版のダウンロード・リンクより、日本語リソースを含んだアーカイブをダウンロードします。

mkdir temp
cd temp
curl -OL https://download.oracle.com/otn_software/apex/apex-latest.zip

[oracle@localhost ~]$ mkdir temp

[oracle@localhost ~]$ cd temp

[oracle@localhost temp]$ curl -OL https://download.oracle.com/otn_software/apex/apex-latest.zip

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100  231M  100  231M    0     0  47.4M      0  0:00:04  0:00:04 --:--:-- 52.0M

[oracle@localhost temp]$ 


ダウンロードしたapex-latest.zipを解凍します。

unzip apex-latest.zip

[oracle@localhost temp]$ unzip apex-latest.zip 

Archive:  apex-latest.zip

  inflating: META-INF/MANIFEST.MF    

  inflating: META-INF/ORACLE_C.SF    

  inflating: META-INF/ORACLE_C.RSA   

   creating: apex/

  inflating: apex/apxsilentins.sql   

  inflating: apex/apxpatch_nocdb.sql  

  inflating: apex/apxdevrm_cdb.sql   

  inflating: apex/coreins3.sql       


[中略]


  inflating: apex/utilities/readme.txt  

  inflating: apex/utilities/apxrekey.sql  

  inflating: apex/apexins_cdb.sql    

[oracle@localhost temp]$ 


日本語リソースをロードします。

cd apex
. oraenv   (ORACLE_SIDとしてFREEを指定)
export NLS_LANG=American_America.AL32UTF8
sqlplus sys/******@localhost/freepdb1 as sysdba
@load_trans JAPANESE

[oracle@localhost temp]$ cd apex

[oracle@localhost apex]$ . oraenv

ORACLE_SID = [oracle] ? FREE

The Oracle base has been set to /opt/oracle

[oracle@localhost apex]$ export NLS_LANG=American_America.AL32UTF8

[oracle@localhost apex]$ sqlplus sys/******@localhost/freepdb1 as sysdba


SQL*Plus: Release 23.0.0.0.0 - Developer-Release on Fri Apr 7 05:19:19 2023

Version 23.2.0.0.0


Copyright (c) 1982, 2023, Oracle.  All rights reserved.



Connected to:

Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release

Version 23.2.0.0.0


SQL> @load_trans JAPANESE


PL/SQL procedure successfully completed.


Installing Oracle APEX translation - JAPANESE


. ORACLE

.

. Application Express Hosted Development Service Installation.

..............................................................


PL/SQL procedure successfully completed.


--application/set_environment

API Last Extended:20221007

Your Current Version:20221007

This import is compatible with version: 20221007

COMPATIBLE (You should be able to run this import without issues.)

ID offset during import: 0

New ID offset for application: 0

APPLICATION 4420 - Oracle APEX Builder, Wizard Messages and Native Plug-Ins

--application/delete_application

--application/create_application

--application/user_interfaces

--application/shared_components/navigation/lists/spotlight_custom_entries_global

--application/shared_components/navigation/lists/spotlight_custom_entries_app_level


[中略]


--application/pages/page_00191

--application/end_environment

... elapsed: 3.43 sec

...done

Adjust instance settings


PL/SQL procedure successfully completed.


SQL> 


プロンプトが返ってきた時点で日本語リソースの導入は完了しています。

この環境には、APEXのワークスペースが作成されていません(正確にはHRRESTというワークスペースがあるが、そのままでは開発に使用できない)。

APEXの管理サービスにサインインし、ワークスペースを作成します。管理者ユーザーはADMINです。

http://localhost:8080/ords/apex_admin

作成手順については、こちらの記事を参照してください。ワークスペースとしてMYDEVを作成します。

ワークスペースMYDEV、管理者ユーザーADMINの作成、ORDSにスキーマを登録まで実施すると、APEXのワークスペースMYDEVにユーザーADMINでサインインできるようになります。


サインイン後の画面です。


データベース・アクション(SQL Developer Web)への接続も確認します。

http://localhost:8080/ords/sql-developer

詳細をクリックし、パス指定を開きます。

パスmydevユーザーadminを指定します。パスワードは管理者ユーザーadminのパスワードで、APEXへのサインイン時に指定したものと同じです。


サインインに成功すると、以下がの画面が開きます。


以上で、Oracle APEXのアプリケーションを開発する準備ができました。