技術者ブログ:Oracle APEX上でPL/SQLを動かす

技術者ブログとして日ごろ取り組んでいる学習内容をご紹介します。
今回は、ローコード開発をテーマにしている第2ユニットです。

今回のテーマ:Oracle APEX上でPL/SQLを動かす

前回の記事にて、Oracle APEXを用いたローコード開発の流れを紹介したのに引き続き、
今回もOracle APEXの紹介となります。
今回は、APEX上でのPL/SQL(プロシージャ)の作り方、動作確認手順、実際に呼び出すための設定方法を紹介します。

1.プロシージャを作成する

SQL Workshop内のObject Browserを開き、+プルダウンよりProcedureを選択します。

Create Procedure画面にて、作成するプロシージャ名を入力します。

引数を定義します。

プロシージャの中身を記述します。
ここでは、create or replace procedure "[プロシージャ名]" ([引数宣言]) isまでを自動で生成してくれるため、それ以降のローカル変数定義やBody部を記述します。

SQLを押下すると実際に生成されるSQLがプレビュー表示されるので、内容に問題がなければCreate Procedureボタンを押下します。

以上の手順により、プロシージャが新規作成されます。

また、一度作成されたプロシージャについては、本画面にて編集後、Save & Compileを実施することで更新が反映されます。

2.動作確認する

SQL Workshop内のSQL Commandsを開き、呼び出したいプロシージャをbegin~end;で囲み、Runを押下することで実行結果がResults欄に出力されます。

3.画面から実行する

画面からプロシージャを実行する場合、ボタンによって実行される動的アクションに設定する方法があります。


まず、詳細画面にボタンを配置します。
今回は、CREATEボタンを複製して作りました。
Behavior>Actionを”Defined by Dynamic Action”に、Database Actionを未選択に変更します。

次に、動的アクションを定義します。
Identification>Actionを”Execute Server-side Code”に設定し、PL/SQL CodeにSQL文を記述します。
2.の動作確認で書いたように、実行したいプロシージャをbegin~end;で囲みます。
画面の入力値を引数として使う場合、Items to Submitにアイテムを列挙します。

また、2つ目の動的アクションを用意し、Identification>Actionを”Submit Page”に、Setting > Request / Button Nameを動的アクションを”[実行するボタン名]”に設定します。

上記手順により、一覧 / 詳細画面にプロシージャを呼び出すボタンを1つ追加しました。
画面から本ボタンを押下することで、プロシージャが実行され、入力値を元にしたレコードが追加されます。


まとめ

APEXに限らず、ローコード開発ツールでは基本的な動作であれば標準で用意されている部品の組み合わせで対応できるよう設計されていますが、
一方で複雑な動作を実現するために、自前のコードを埋め込み実行させる仕組みも用意されています。
本記事にて、そういった実装をする際の一助になれば幸いです。