こんにちは!平野です。
本日はOracleAPEXでテーブルを作成します。
Oracle APEXでは、テーブルを生成してから画面を作るのが基本的な手法となります。
このテーブルの作成がコードを書かずにGUI上でできてしまいます。今回はその方法について説明します。
Oracle APEXの環境を持っていない方は以下記事を参考にしてください。
ローコード開発ってどうやるの?(Oracle APEX)
更新履歴
日付 | 更新概要 |
---|---|
2020/09/08 | 記事公開 |
2020/11/25 | 記事更新 |
対応バージョン
製品名 | バージョン |
---|---|
Oracle APEX | 5.1 – 20.1.0.00.13 |
Oracle Database | 12.2 – 19.6 |
目次
必要な要素を考える
簡単なタスク管理アプリを開発すると仮定し、以下のようなタスク管理アプリの機能で考えてみます。
- 複数の利用者(ユーザー)がタスクを入力
- 入力されたタスクは利用者ごとに確認可能
- タスク完了の予定日が近くなるとメールが飛ぶ
- タスクが完了したらデータを消す
まずは、テーブル作成に必要な要素を考えてみます。
テーブル名:TASK_LISTS
列名 | 説明 | データ型 | スケール | NULLを許可 |
---|---|---|---|---|
ID | 作成されたタスクごとに付与 | NUMBER | いいえ | |
USERNAME | タスクを作成したユーザーの名前 | VARCHAR2 | 255 | いいえ |
TASK_TITLE | タスクのタイトル | VARCHAR2 | 255 | |
TASK_CONTENT | タスクの内容 | VARCHAR2 | 4000 | |
TASK_DEADLINE | タスクを完了すべき期日の設定 | DATE |
要素ごとのデータ型に関してはOracleの公式マニュアルSQL言語リファレンスを参考にしてくだい。
以上のように想定してみました。
このテーブルの定義をもとに、Oracle APEXのGUI操作でテーブルを作成していきます。
GUI操作の手順
GUI操作の手順を説明していきます。
- OracleAPEXにサインインして、SQLワークショップを開きます。
-
オブジェクト・ブラウザを開きます。
-
右上の+マークをクリックして表を選択します。
-
今回仮定したテーブル定義を入力します。
-
新規順序から移入を選択し、主キーをIDとして下さい。
-
外部キー・制約についてはそのまま設定せず次へを選択してください。必要となった場合は後から設定することも可能です。
-
表の作成を選択してください。
今回GUI上で作成したテーブルのSQL文が自動生成されています。
表の作成ページにあるSQLというタブをクリックすると見ることができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
CREATE table "TASK_LISTS" ( "ID" NUMBER(255) NOT NULL, "USERNAME" VARCHAR2(255) NOT NULL, "TASK_TITLE" VARCHAR2(4000), "TASK_CONTENT" VARCHAR2(4000), "TASK_SUBCONTENTS" VARCHAR2(4000), "TASK_DEADLINE" DATE, constraint "TASK_LISTS_PK" primary key ("ID") ) / CREATE sequence "TASK_LISTS_SEQ" / CREATE trigger "BI_TASK_LISTS" before insert on "TASK_LISTS" for each row begin if :NEW."ID" is null then select "TASK_LISTS_SEQ".nextval into :NEW."ID" from sys.dual; end if; end; / |
これでテーブルが完成しました。
作成したテーブルは、オブジェクト・ブラウザ画面から参照できます。
最近作成された表から直接オブジェクト・ブラウザのTASK_LISTSテーブルを確認することもできます。
オブジェクト・ブラウザでは、列の追加や列名の変更などいつでも行うことができます。
おわりに
いかがだったでしょうか。
テーブルの要素だけ考えてしまえば5分もかからずテーブルを作成することができます。
もちろんSQLコマンドを直接記入してテーブルを作成することも可能です。
こういった開発における柔軟性がOracle APEXの強みの1つと言えます。
是非ともご参考にしていただければと思います。
ありがとうございました!