HOME > ソフテックだより > 第479号(2025年8月6日発行) 技術レポート「WebアプリからOracle Database接続 〜 ORDS公開モジュールの使用方法 〜」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第479号(2025年8月6日発行)
技術レポート

「WebアプリからOracle Database接続

〜ORDS公開モジュールの使用方法〜」

1. はじめに

私は入社21年目の社員です。

ORDS (Oracle REST Data Service)とはOracle DatabaseのHTTPS Webゲートウェイです。その機能には、Oracle Database Actions、データとデータベース用のREST API機能などが含まれています。ORDSを活用することにより、WebアプリからOracle Databaseにアクセスすることができます。

REST API機能を使用するには以下の方法があります。
(1) 公開モジュール
(2) AutoREST (データベースのテーブルに対して自動でREST APIを生成する仕組み)
(3) APEX (データベース上で動作するWebアプリフレームワーク)

本稿では公開モジュールを使用する方法について紹介させて頂きます。

2. ORDSセットアップ

以下の前提で、ORDSのセットアップについて記載します。

・OracleDatabse
:「19.13.0.0.0」をインストール済み
・JDK
:「23.0.1」をインストール済み
・ORDS
:「24.2.3」を公式サイトから取得
・ORDS 展開フォルダ
:「C:\SOFTECH\ORDS\ords-24.2.3.201.1847」
・ORDS 構成フォルダ
:「C:\SOFTECH\ORDS_config」

セットアップ手順は以下の通りです。

  • ORDSインストールモジュールを展開
    Oracle公式サイトからインストールモジュールを取得して、対象フォルダへ展開します。

  • 展開したフォルダを環境変数のPATHに追加
    コマンドプロンプトで次のコマンドを実行します。
    C:\Users\Administrator>SetX PATH "%PATH%;C:\SOFTECH\ORDS\ords-24.2.3.201.1847\bin"
  • ORDSの構成
    コマンドプロンプトで次のコマンドを実行します。
    C:\Users\Administrator>ords --config C:\SOFTECH\ORDS_config install 対話型のインターフェースで、接続先データベースや管理者権限を持つユーザー名などの入力を要求されますので、適切に入力してください。
    ORDSの構成が完了すると、ORDS構成フォルダが作成され、自動的にORDSが起動します。

  • ORDSの起動
    構成完了後に手動でORDSを起動する場合、コマンドプロンプトで次のコマンドを実行します。
    C:\Users\Administrator> ords --config C:\SOFTECH\ORDS_config serve

3. ORDS公開モジュール使用方法

公開モジュールを作成し、POSTハンドラとGETハンドラを使用する方法について記載します。
前提条件は以下とします。

・モジュール名
:「mo」
・公開パス
:「http://localhost:8080/ords/dbo/urihd/uript」
   (dbo: データベース所有者 urihd: URI接頭辞 uript:URIパターン)

本稿のモジュール作成後、Oracle SQL Developerのツリーは以下のようになります。

モジュール作成後のツリー
図1. モジュール作成後のツリー

以後、モジュール作成の手順について記載します。

3-1. RESTサービスの有効化

RESTサービスの有効化を行う手順は次の通りです。

  • Oracle SQL Developer を起動する。
  • 対象データベース接続を選択して、接続する。
  • 対象データベースの接続を右クリックして「RESTサービス - RESTサービスの有効化」を選択する。
    選択後、ウィザードに沿って設定します。(詳細は割愛します)

成功すると、ツリーに「RESTデータサービス」(図1参照)が追加されます。

3-2. 公開モジュールの作成

公開モジュールの作成手順は以下の通りです。

  • 「RESTデータサービス - モジュール」を右クリックして「新規モジュール」を選択
    選択後、ウィザードに沿って設定します。
    詳細は割愛しますが、本稿では以下のサマリーになるように設定します。

モジュール作成のサマリー
図2. モジュール作成のサマリー

成功すると、ツリーに対象モジュール(図1 の「mo」)とURIパターン(図1の「uript」)が登録されます。

3-3. POSTハンドラの追加

Oracle DatabaseのPL/SQLプロシージャを実行するためのPOSTハンドラを追加します。

  • 対象モジュールの「URIパターン」を右クリックして「ハンドラの追加 - POST」を選択
    ウィザードが表示されますので、デフォルトのまま、「適用」ボタンを押します。
    成功すると、POSTハンドラ(図1参照)が作成されます。
    また、POSTハンドラの「SQL ワークシート」タブが表示されます。

  • POSTハンドラの「SQL ワークシート」タブへクエリを入力
    以下は引数のパラメータを元に「TEST」テーブルへレコード挿入するプロシージャです。「TEST」テーブルが存在しない場合は新規で作成します。
    DECLARE
        nCount number;
        cSql varchar2(4000);
    BEGIN
    select count(table_name) into nCount from user_tables where table_name = 'TEST';
    if( nCount = 0 ) then -- テーブルが存在しない
        cSql := 'CREATE TABLE TEST("PK_ID" NUMBER NOT NULL,"VAL" VARCHAR2(20)' || ', CONSTRAINT TEST_PK PRIMARY KEY ("PK_ID")) ';
        DBMS_OUTPUT.put_line(cSql);
        Execute Immediate cSql; -- テーブルを作成
    end if;
    cSql := 'INSERT INTO TEST (PK_ID, VAL) VALUES(' || :PK_ID || ',''' || :VAL|| ''')';
    Execute Immediate cSql; -- テーブルへ挿入
    :status_code := 201; -- httpレスポンスステータスコード
    END;
  • パラメータタブを開き、パラメータを入力
    PK_ID
    :「TEST」テーブルの主キー
    VAL
    :「TEST」テーブルの文字列フィールド
    POSTハンドラのパラメータタブ
    図3. POSTハンドラのパラメータタブ
    ※1 名前はURI(Web側)で指定する文字で、バインド・パラメータはプロシージャ内で使用するパラメータ名です。

  • ハンドラを保存
    図3の左上の保存アイコンをクリックする。

  • 確認方法
    コマンドプロンプトで次のコマンドを実行します。
    C:\Users\Administrator>curl -v -X POST -H "Content-Type: application/json" -d "{""PK_ID"":1,""VAL"":""stringVal""}" "http://localhost:8080/ords/dbo/urihd/uript"実行結果に「HTTP/1.1 201 Created」が含まれていれば、成功です。

3-4. GETハンドラの追加

Oracle Databaseのテーブルからレコードを取得するためのGETハンドラを追加します。

  • 対象モジュールの「URIパターン」を右クリックして「ハンドラの追加 - GET」を選択
    ウィザードではデフォルトのまま、「適用」ボタンを押します。
    成功すると、GETハンドラ(図1参照)が作成されます。
    また、GETハンドラの「SQL ワークシート」タブが表示されます。

  • GETハンドラの「SQL ワークシート」タブへクエリを入力する。
    SELECT * FROM 社員 WHERE ID = :社員ID; -- :社員IDはパラメータ
  • パラメータタブを開き、パラメータを設定する。
    PK_ID
    :「TEST」テーブルの主キー
    GETハンドラのパラメータタブ
    図4. GETハンドラのパラメータタブ

  • ハンドラを保存
    図4の左上の保存アイコンをクリックする。

  • 確認方法
    C:\Users\Administrator> curl -- "http://localhost:8080/ords/dbo/urihd/uript?PK_ID=1"
    実行結果にPOSTハンドラの追加で渡した値(“stringVal”)が含まれていれば、成功です。

4. おわりに

今回はORDSの公開モジュールを使用する方法についてご紹介させて頂きました。
公開モジュールを使用することにより、Webアプリなどからオラクルデータベースへアクセスすることができるようになります。本稿が皆様の参考になれば、幸いです。

(K.S.)


関連ページへのリンク

関連するソフテックだより

ページTOPへ