Oracle Technology Network

Oracle Application Express 4.0を使用した、データベース・オブジェクトの操作

目的

このチュートリアルでは、Oracle Application Expressを使用して、データベース・オブジェクトを操作する方法を説明します。

所要時間

約30分

概要

Oracle Application Expressについて

Oracle Application Expressは、データベース中心のWebアプリケーションを開発および配置するための、ホスティングされた宣言型開発環境です。 ユーザー・インタフェース・テーマ、ナビゲーション制御、フォーム・ハンドラ、および柔軟なレポートなどの組込み機能によって、Oracle Application Expressはアプリケーションの開発プロセスを加速させます。

Oracle Application Expressの構成要素

Oracle Application Expressの主要なコンポーネントは以下の4つです。

アプリケーション・ビルダー

データベース中心の対話型Webアプリケーションの開発に使用します。

SQLワークショップ データベース・オブジェクトにアクセスし、SQL文とSQLスクリプトを実行します。
チーム開発 アプリケーション開発プロセスの管理を支援します。
管理 サービスおよびユーザーの管理とアクティビティの監視に使用します。

用語

Oracle Application Expressを使用して作業するにあたって、以下の概念を理解しておくことが重要です。

作業領域

作業領域とは、仮想プライベート・データベースのことです。作業領域を使用すると、複数のユーザーが、各自のオブジェクト、データ、アプリケーションをプライベートに維持したまま、同じOracle Application Expressを使用して作業できます。

アプリケーション

アプリケーションとは、ページとページを接続するブランチの集まりのことです。 アプリケーションの属性として、認証方式、デフォルトUIテンプレート、および許可ルールがあります。

ページ ページは、アプリケーションの基本構築ブロックです。 アプリケーション・ビルダーでアプリケーションを構築する場合は、タブ、リスト、ボタン、アイテム、リージョンなどのユーザー・インタフェース要素を含むページを作成します。
リージョン コンテンツはリージョンに表示されます。リージョンとはページの論理サブセクションです。 各ページには、複数の異なるタイプのリージョンをいくつでも作成できます。 これらのタイプには、HTMLテキスト、SQL問合せ、PL/SQL生成のHTML、グラフがあります。 各リージョンは、リージョン・テンプレートを使用してレンダリングされます。 リージョンのページ上での位置は、ページ・テンプレートに定義された表示ポイントによって決まります。
アイテム アイテムには、テキスト・フィールド、テキスト領域、パスワード、選択リスト、チェック・ボックスなどがあります。 アイテムの属性は、ページ上のアイテムの表示と動作に影響を与えます。 たとえば、ラベルの表示位置、アイテムの大きさ、直前のアイテムの横または下に表示するかどうか、といった属性があります。アイテムの値はアプリケーションのセッション・ステートに自動的に格納され、ユーザー・セッション内の任意の時点で参照できます。

アーキテクチャ

Oracle Application Expressは、Oracleデータベースとともにインストールされ、表に格納されたデータとPL/SQLコードで構成されます。

Oracle Application Expressは、Webリスナーを通してOracle Databaseと通信する際にユーザー・コンピュータ上のWebブラウザを利用します。 Application Expressページはブラウザ内でHTMLを使用してレンダリングされるため、開発、配置、または実行時にブラウザ以外のクライアント・ソフトウェアは必要ありません。 ページのリクエストと送信は、Oracle Database内のApplication Expressエンジンに送られます。

アプリケーションを作成または拡張する場合、Oracle Application Expressは、そのデータベース表に格納されたメタデータを作成または変更します。 アプリケーションが実行されると、Application Expressエンジンはメタデータを読み込み、リクエストされたページを表示するか、ページの送信を処理します。

アプリケーション内でステートフルな動作を行うために、Oracle Application Expressはデータベースのセッション・ステートを透過的に管理します。 アプリケーション開発者は、標準SQLのバインド変数構文と同様に、単純な置換を使用して、セッション・ステートを取得および設定できます。

Apache MOD_PLSQL
Oracle Application Expressエンジンにアクセスする方法の1つは、mod_plsqlプラグインを含むOracle HTTP Server(Apache)を構成することです。 Oracleデータベースにおいて、このプラグインはWebサーバーとOracle Application Expressオブジェクト間のコミュニケーション・ブローカとして機能します。 これは、ブラウザのリクエストをデータベースのストアド・プロシージャ・コールにマッピングします。 イメージは、ファイル・システムに格納され、Apacheにより提供されます。 Apacheを使用することで、Webリスナーをデータベースと同じ物理マシン上に置くか、または別々の物理マシン上に置くことができます。

組込みPL/SQLゲートウェイ(EPG)
組込みPL/SQLゲートウェイは、OracleデータベースのXML DB HTTPサーバーで実行され、mod_plsqlの中心機能を含みますが、Apacheを使用したOracle HTTP Serverを必要としません。 EPGは、すべてのファイル(データベースからのJavaScript、イメージ、CSSを含む)を格納および提供します。 EPGは、小規模の構成に便利です。 EPGは、大規模の本番環境のユースケースやインターネット向けアプリケーションには推奨されません。

Oracle Application Express 4.0について

Oracle Application Express(Oracle APEX) Release 4.0の新機能の概要は、以下のとおりです。

Websheets

Websheetsを使用することで、すべてのユーザーは、Webベースのデータ・エントリ・アプリケーションおよびレポート・アプリケーションを迅速に構築し、配置できます。 Websheetsを使用すると、表、トリガー、シーケンスの作成が自動的に処理されます。 Websheetsは、レポートとフォーム・レイアウトに対する簡単で宣言的なアプローチや、値と検証の作成リストを提供します。

グラフ作成の強化

Oracle Application Express 4.0にはAnyChart 5.1の統合が含まれているため、パフォーマンスが向上し、レンダリング時間および更新時間が短縮されます。 マップとガント・チャートのサポートに加え、このリリースには、スクロール機能のサポート、インタラクティブ・ラベル、凡例マーカー、複数データ・マーカー、コンテンツ・メニューのローカリゼーションが含まれています。

REST Webサービス

REST Webサービスは、SOAP Webサービスよりも簡単なアーキテクチャを利用します。 パラメータは、REST WebサービスにURLの一部として送信され、VMLドキュメントが返されます。

アプリケーション・ビルダーの向上

アプリケーション・ビルダーでは、新しいルック・アンド・フィールが提供されています。 ユーザー・インタフェースの拡張には、ナビゲーションの改善、管理画面の再設計、インタラクティブ・レポートの幅広い活用、およびアプリケーション検索機能の統合が含まれます。

インタラクティブ・レポートの強化

インタラクティブ・レポートは、アイコンと詳細ビュー、カレンダ・ビュー、インライン編集、複合フィルタ式、電子メール通知、新しいGroup By機能をサポートします。 さらに、各レポートでは、検索可能なHTMLにダウンロードできる強化された保存オプションとともに、より詳細な印刷機能が提供されます。

動的アクション

動的アクションにより、開発者はJavaScriptを使用することなく、クライアント側の動作を宣言的に定義できます。 開発者は、簡単なウィザードを使用し、ページ・アイテムと条件の選択、値の入力、アクション(表示、非表示、有効化、Item行の表示)の選択を実行できます。

プラグイン

プラグインを使用して既存の組込み機能を新しいアイテム・タイプ、リージョン・タイプ、動的アクションで強化することで、開発者はアプリケーションを強化し、カスタマイズできます。

Oracle Application Express Listener

Oracle Application Express 4.0には、新しいHTTP Webサーバーが含まれます。 このWebサーバーは、Javaベースです。 Oracle Application Express Listenerは、ファイル・システム・キャッシュ、FOPのPDFへの変換のサポート、向上したファイルのアップロード機能を提供し、Oracle Web Logic、Tomcat、およびOC4Jに対応しています。

チーム開発

チーム開発は、新機能、さまざまな開発タスク、バグ、マイルストーンを追跡することで、開発プロセスの管理を可能にする組込みのプロジェクト管理ツールです。 また、チームのメンバーは、機能、一般タスク、またはバグにカテゴライズできるリアルタイムのフィードバックを提供できます。

前提条件

このチュートリアルを始める前に以下のことを確認してください。

スプレッドシートからの表の作成

このチュートリアル用のデータをスプレッドシートからロードするには、以下の手順に従います。

.

以下のURLを入力してOracle Application Expressにログインします(<ホスト名>は、localhost、個々のホスト名、またはapex.oracle.comに変更してください)。

http://<ホスト名>:8080/apex

 

.

Oracle Application Expressにログインするには、以下の詳細情報を入力して、「ログイン」をクリックします。

ワークスペース: <作業領域名>
ユーザー名: <ユーザー名>
パスワード: <パスワード>

Screenshot for Step

 

.

表を作成するには、最初にスプレッドシート・データをロードする必要があります。 SQLワークショップの横にある下矢印をクリックし、「ユーティリティ」→「データ・ワークショップ」を選択します。

Screenshot for Step

 

.

スプレッドシート・データ」をクリックします。

Screenshot for Step

 

.

ロード先としてとして新しい表が設定されていることを確認します。ロード元に「ファイルをアップロード(カンマ区切りまたはタブ区切り)」オプションを選択します。「次へ >」をクリックします。

Screenshot for Step

 

.

ファイルを選択」をクリックします。

Screenshot for Step

 

.

ファイルの置かれたディレクトリからtasks.txtファイルを検索し、開く」をクリックします。 このテキスト・ファイルのデータはタブ区切りのため、セパレータ・フィールドに\tを入力します。 「次へ >」をクリックします。

Screenshot for Step

 

.

表のプロパティページには、表の列およびその書式、表の作成後に表に挿入されるデータが表示されます。 表名にOBE_TASKSと入力し、次へ >」をクリックします。

Screenshot for Step

 

.

「データのロード」ページを使用することで、システム生成の主キーを表に追加すること、およびその列に新しい順序を移入することが可能です。 デフォルト値を確認し、「データのロード」をクリックします。

Screenshot for Step

 

.

表が作成され、データがロードされた後は、テキスト・データのロード・リポジトリ・ページが表示されたままになります。 アップロードしたファイルが表示され、16行が正常にアップロードされたことを確認できます。 新しい表を表示するには、SQLワークショップの横にある下矢印をクリックし、「オブジェクト・ブラウザ」を選択します。

Screenshot for Step

 

.

表定義を表示するには、左側のナビゲータの表リストの下にある「OBE_TASKS」表をクリックします。

Screenshot for Step

 

.

このページには表定義が表示されます。 表のデータを表示するには、「データ」タブをクリックします。

Screenshot for Step

 

.

表の全データが表示されます。 このページから表の任意のデータを変更できます。また、表へ行を追加することも可能です。

Screenshot for Step

 

マスター表の追加

プロジェクト名を保守可能にし、プロジェクトに関するその他の情報を追跡できるようにするために、Project情報を別の表に移動できます。以下の手順を実行します。

.

」タブをクリックします。

Screenshot for Step

 

.

参照表の作成」ボタンをクリックします。

Screenshot for Step

 

.

マスター表を作成する列を指定するために、「PROJECT - varchar2」を選択し、「次へ >」をクリックします。

Screenshot for Step

 

.

以下の値を入力して、「次へ >」をクリックします。

New Table Name: OBE_PROJECTS
New Sequence: OBE_PROJECT_SEQ

Screenshot for Step

 

.

終了」をクリックします。

Screenshot for Step

 

.

新しいOBE_PROJECTS表に、数値の主キーとPROJECT列が含まれていることを確認します。

Screenshot for Step

 

表の変更

ここまでで2つのメイン表を作成したので、OBE_PROJECTS表にいくつか列を追加して改良します。
以下の手順を実行します。

.

OBE_PROJECTS表が選択されていることを確認します。 これから、この表に列を追加します。 「列の追加をクリックします。

Screenshot for Step

 

.

以下の各値を入力して、「次へ >」をクリックします。

Add Column: PROJECT_DEADLINE
Type: DATE

Screenshot for Step

 

.

終了」をクリックします。

Screenshot for Step

 

.

PROJECT_DEADLINE列が追加され、変更された表定義が表示されます。 さらに、PROJECT_PRIORITY用にもう1つ列を作成します。 「列の追加」をクリックします。

Screenshot for Step

 

.

以下の各値を入力して、「次へ >」をクリックします。

Add Column: PROJECT_PRIORITY
Type: NUMBER
Precision: 1

Screenshot for Step

 

.

終了」をクリックします。

Screenshot for Step

 

.

PROJECT_PRIORITY列が追加されます。 「データ」タブをクリックして、データを表示します。

Screenshot for Step

 

.

OBE_TASKS表で参照されているすべてのプロジェクトが表示されます。 この画面でデータを変更できます。 プロジェクトPublic WebsiteのPROJECT_IDの左にあるEdit」アイコンをクリックします。

Screenshot for Step

 

.

Project Deadlineに、今日以降の日付を入力します。 Priorityに1を入力します。 「変更の適用」をクリックします。

Screenshot for Step

 

.

追加したデータが表示されます。 データベース・オブジェクトを作成してデータをロードする別の方法として、スクリプトを使用する方法もあります。 「SQL スクリプト」アイコンをクリックします。

Screenshot for Step

 

スクリプトを使用した表の追加

OBE_TASKS.ASSIGNED_TO列は番号です。 このトピックでは、スクリプトを実行して、OBE_EMPLOYEES表を作成し、現在の従業員のリストをロードします。 従業員は、OBE_TASKS.ASSIGNED_TO列の番号に対応するEMPLOYEE_IDを持ちます。 以下の手順を実行します。

.

SQL Scriptsページを開きます。 「アップロード >」をクリックします。

Screenshot for Step

 

.

ファイルを選択」をクリックします。

Screenshot for Step

 

.

作業ディレクトリから「employees.sql」を選択し、開く」をクリックします。 スクリプト名にOBE_EMPLOYEESと入力して、「アップロード」をクリックします。

Screenshot for Step

 

.

実行」アイコンをクリックします。

Screenshot for Step

 

.

即時実行」をクリックし、確定します。

Screenshot for Step

 

.

スクリプトが実行されます。 結果を表示するには、「結果の表示」アイコンをクリックします。

Screenshot for Step

 

.

OBE_EMPLOYEES表が作成され、一部のデータが挿入されます。 「SQLワークショップ」ブレッドクラム・リストをクリックします。

Screenshot for Step

 

制約の追加

OBE_TASKS.ASSIGNED_TO列によって参照されている従業員データを挿入しましたが、まだ表間の外部キーを指定していません。 外部キーによって、各ASSIGNED_TO列が有効な従業員を参照するようになります。 また、タスクが割り当てられた従業員の削除が禁止されます。 以下の手順を実行します。

.

オブジェクト・ブラウザ」をクリックします。

Screenshot for Step

 

.

OBE_TASKS表を選択します。

Screenshot for Step

 

.

制約」タブをクリックします。

Screenshot for Step

 

.

作成」をクリックします。

Screenshot for Step

 

.

制約のタイプとして「外部キー」を選択します。 外部キー列として「ASSIGNED_TO」を選択します。また、参照表名として「OBE_EMPLOYEES」を選択し、参照表の列リストから「EMPLOYEE_ID」を選択します。 「次へ >」をクリックします。

Screenshot for Step

 

.

終了」をクリックします。

Screenshot for Step

 

.

制約が正しく作成されました。 次に、PROJECT_PRIORITYに対するチェック制約を作成し、データが挿入または更新された際に正しく検証されるようにします。 「OBE_PROJECTS」を選択します。

Screenshot for Step

 

.

作成」をクリックします。

Screenshot for Step

 

.

制約対象列フィールドで「PROJECT_PRIORITY」を選択し、Constraint Expressionにin ('1','2','3')と入力します。 制約のタイプでチェックが選択されていることを確認します。 「次へ >」をクリックします。

Screenshot for Step

 

.

終了」をクリックします。

Screenshot for Step

 

.

制約が正しく作成されました。 「ホーム」ブレッドクラム・リストをクリックします。

Screenshot for Step

 

まとめ

このチュートリアルで学習した内容は、以下のとおりです。

Hardware and Software Engineered to Work Together 会社情報 |オラクルとサン | Oracle RSS Feeds | 採用情報 | お問い合わせ | サイトマップ | 情報保護基本方針 | ウェブサイトのご使用条件 | 個人情報保護基本方針