2026年6月24日水曜日

Oracle APEX Developer's Companionを読む

Oracle APEX 26.1のリリースに合わせて、新しい公式ドキュメントが追加されました。

Developer's Companion, Release 26.1
著者であるOracle CorporationのSenior ArchitectであるSteve Meunchさんによる、紹介記事が公式ブログで公開されています。

APEX Developer’s Companion

Developer's Companionは公式ドキュメントですが、テクニカル・ライターではなく製品をよく知っている技術者によって書かれています。

内容は包括的で、Oracle APEXのほとんどの機能を網羅しています。また、説明も実践的です。事実上、Oracle APEXでアプリケーションを開発するにあたって、最初に参照すべきドキュメントになっています。

とはいえ、全25章、総ページ数で1000を超えています。さらに英語です。それほど遠くない将来にオラクルから日本語の翻訳が出るとは思いますが、それまでどうしようかということで、生成AIに翻訳してもらうことにしました。

Claude Cowork、Sonnet 4.6で翻訳してみました。同様にOpenAI Codex、Google Antigravityでも翻訳を試してみましたが、Claude Sonnet 4.6が一番読みやすい翻訳だったので、Claudeを使うことにしています。翻訳結果はプロンプトにも依存するので、Codex(GPT-5.5)、Google(Gemini 3.5 Flash)の性能が劣っているとも言えないかとは思います。

翻訳なのでOpusまでは不要という判断で、Sonnet 4.6を選択しています。概ね、Sonnetで問題なく翻訳できました。

翻訳したドキュメントを配布するのは著作権の問題があるので、Claude Coworkでの翻訳手順を紹介します。

Developer's CompanionのPDF版をダウンロードし、それを翻訳します。Developer's Companionのサイトを開き、PDFをダウンロードします。



ファイルoracle-apex-developers-companion.pdfがダウンロードされます。

このファイルをそのまま渡して日本語への翻訳を依頼したところ、180MB強のサイズで一気に翻訳できないといわれました。そのため、章ごとに分割して翻訳することにしました。

Coworkで最初に以下のプロンプトを与えています。

「添付のPDF資料を章別に分割し、それぞれを日本語に翻訳してください。出力するファイルはchapter-1.pdf、chaprter-2.pdfのように章別のファイル名にしてください。」


第1章の翻訳結果を確認すると、スクリーンショットが除外されていました。作業を停止して、以下のプロンプトを与え、翻訳結果にスクリーンショットを含めるように指示しました。

「翻訳はしなくてよいので、スクリーンショットの画像ははPDFにそのまま含めてください。」


指示が誤解されて、文章の翻訳までされていなかったので、以下の指示を与えて翻訳を再実行してもらいました。

「文章は日本語に翻訳し、画像は翻訳しないで含めてください。」


翻訳結果の単語の選び方が今ひとつに感じたため、手元にAPEX 26.1のインスタンがあったので、以下のスクリプトを実行して対訳表をtranslated_text.csvとして出力しました。

ユーザーSYSでデータベースに接続して実行しています。
alter session set current_schema = apex_260100;
set sqlformat csv
spool translated_text.csv
select en.message_text as "English", ja.message_text as "Japanese" from
(
   select name, message_text from wwv_flow_messages$ where message_language = 'en'
) en join (
   select name, message_text from wwv_flow_messages$ where message_language = 'ja'
      and length(message_text) < 30
) ja on en.name = ja.name;
spool off;
exit;
以下のプロンプトを与え、対訳表を認識させています。

「英語から日本語へ変換する際に、translated_text.csvの対訳表を参照してください。」


翻訳結果を確認すると、要約されていました。理由を聞いてみました。

「翻訳結果が英語の本文よりもずいぶんと要約されているのはなぜ?」

以下の回答が返されました。


最も品質が高い翻訳を依頼しました。

「章を指定して1章ずつ精訳する(最も品質が高い)を期待しています。」

あとは、Claudeが粛々と翻訳してくれました。chapter-1-ja.pdfからchapter-25-ja.pdfまでの25のファイルがプロジェクトにアタッチしたフォルダに作成されました。ClaudeのProプランだと、途中でセッション・リミットに引っかかりましたが、リセットされた後に継続できています。

翻訳結果の第1章の最初のページです。


せっかく翻訳したので、それぞれの章について所感をまとめます。AIは使用していません。

第1章:はじめに

概ね一般的なOracle APEXの紹介です。APEX 26.1を対象としているため、1.6としてAPEXlangの紹介が含まれています。

第2章:ローカル・データの操作

いわゆるリレーショナル・データベースの機能の紹介です。表を定義したり、操作したりするために使用できるユーティリティなども紹介しています。

第3章:ユーザー・エクスペリエンス・デザインの簡素化

ページ・デザイナを使ってページを作る方法などの説明で、いわゆるAPEXを使ったアプリケーション作成の中心的な作業について説明されています。

第4章:ページでのデータ値の参照

ページ・アイテムやアプリケーション・アイテムといった、値を保持するコンポーネントから、値を取り出して操作する方法を紹介しています。置換文字列、バインド変数、テンプレート・ディレクティブ、SQLおよびPL/SQLでのセッション・ステートの扱いなど。

第5章:データの視覚化と分析

データの表示に使う組み込みのリージョンの紹介です。各種レポート(クラシック・レポート、対話モード・レポート)、カード、チャート、マップ、カレンダー、ツリー、動的コンテンツなど。

第6章:エンド・ユーザーの検索機能の強化

ファセット検索、スマート・フィルタなどの組み込みの検索機能の紹介です。

第7章:プライグインによる機能の追加

プラグインですが主にテンプレート・コンポーネントの作成方法と、出来合いのプラグインの活用方法について紹介しています。テンプレート・コンポーネントを除いた、一般的なプラグインの作り方は触れていません。

第8章:ページ・フローとセッション状態の理解

ページの遷移とセッション・ステートという、APEXアプリケーションの基本部分の紹介です。

第9章:グリッドでのデータの編集

対話グリッドの紹介です。

第10章:マスター/詳細データの操作

Oracle APEXでできる、マスター・ディテール関係の扱い方を紹介しています。マスター・ディテールを扱うページには、積上げ、左右、ドリルダウンがあります。

第11章:ユーザーとロールによるアクセス制御

Oracle APEXに標準で組み込まれている、ロールによるアクセス制御について紹介しています。仮想プライベート・データベースやOracle IAMによるソーシャル・サインインも紹介されています。

第12章:人工知能の適用

生成AIサービスの構成や、AIエージェントの開発について紹介しています。ベクトル検索も含まれます。

第13章:リモート・データの統合

主にORDSを呼び出して、リモート・データを操作する方法について紹介しています。REST有効SQL、RESTデータ・ソースおよび認証も含みます。パッケージAPEX_EXECの使い方も含みます。

第14章:統合のためのAPIの公開

APEXというよりは、Oracle REST Data ServicesでのREST APIの作り方の紹介です。

第15章:住所のジオコーディング

Oracle eLocationサービスを使用したジオコーディングの紹介です。Oracle eLocationサービスは日本をサポートしていないため、その部分は参考になりませんが、CSSやJavaScriptの書き方については参考になります。

第16章:ファイルのアップロード、表示、ダウンロード

画像を含むBLOB列へのファイルのアップロード、画像の表示、PDFのプレビュー、ZIPファイルのダウンロードなどを紹介しています。ファイルの保存先としてOCIのオブジェクト・ストレージにバケットを使用する方法や、事前承認済みリクエストについての説明があります。

第17章:外部データのロード

Excel、XML、JSON、CSVなどのフォーマットの外部ファイルをデータベースにロードする方法の紹介です。データ・ロード定義を作り、宣言的にロードする方法とパッケージAPEX_DAT_LOADINGやAPEX_DATA_PARSERを使う手続的な方法など。

第18章:ロジックのグループ化とバックグラウンド実行

プロセスの実行チェーンとバックグラウンド実行についての紹介です。

第19章:繰り返し処理の実行

共有コンポーネントの自動化(Automation)についての紹介です。

第20章:エンドユーザーへの通知

成功メッセージとエラー・メッセージの表示、メールの送信、プッシュ通知についての紹介です。

第21章:ピクセス・パーフェクト・レポートの生成

OCIのOracle Document Generatorを呼び出してレポートを出力する手順の紹介です。

第22章:アプリケーションの翻訳

APEXアプリケーションの翻訳方法の紹介です。APEX 26.1のテキスト・メッセージベース翻訳に依っています。

第23章:アプリケーション・ライフサイクルの理解

APEXアプリケーションの開発、テスト、リリースのサイクルを回す方法を紹介しています。アプリケーションのインポートとエクスポート、作業コピーなど。次章のAPEXlangと関連します。

第24章:APEXlangの使用

APEXlang形式のエクスポートやインポート、およびAPEXlangの構文を紹介しています。編集方法も含みます。

第25章:ビジネス・プロセスの自動化

分量が多いですが、全編APEXワークフローの紹介です。