63 DBMS_EPG
DBMS_EPG
パッケージは、WebブラウザからHTTPリスナーを介してPL/SQLストアド・プロシージャを起動できる、埋込みのPL/SQLゲートウェイを実装します。
この章のトピックは、次のとおりです:
63.1 DBMS_EPGの概要
DBMS_EPG
パッケージは、PL/SQLユーザーがPL/SQL Webアプリケーションを開発およびデプロイするためのプラットフォームです。埋込みPL/SQLゲートウェイは、Oracle DatabaseのXMLデータベースHTTPサーバー内で実行されるゲートウェイの埋込みバージョンです。これにより、データベース内でmod_plsql
のコア機能が提供されますが、Oracle HTTP Server powered by Apacheは必要ありません。
63.2 DBMS_EPGのセキュリティ・モデル
構成インタフェースを起動するにはXDBADMIN
ロールが必要です。データベース・ユーザーXDB
によって起動できます。
認証インタフェースは、すべてのユーザーが起動できます。
63.3 DBMS_EPGの例外
このトピックの表では、DBMS_EPG
パッケージで発生する例外を示します。
表63-1 DBMS_EPGの例外
例外 | エラー・コード | 説明 |
---|---|---|
|
20000 |
データベース・アクセス記述子(DAD)%sが見つかりません。DADの名前が正しいこと、およびそれが存在することを確認してください |
63.4 DBMS_EPGのデータ構造
DBMS_EPG
パッケージは、TABLE
タイプを定義します。
VARCHAR2_TABLE表タイプ
このタイプは、属性名、属性値、仮想パスおよびデータベース・アクセス記述子(DAD)のリストを戻すために、GET_ALL_GLOBAL_ATTRIBUTES
、GET_ALL_DAD_ATTRIBUTES
、GET_ALL_DAD_MAPPINGS
およびGET_DAD_LIST
プロシージャで使用されます。
TYPE VARCHAR2_TABLE IS TABLE OF VARCHAR2(4000) INDEX BY BINARY_INTEGER;
63.5 DBMS_EPGのサブプログラム・グループ
63.5.1 DBMS_EPG構成サブプログラム
構成サブプログラム・グループには、埋込みPL/SQLゲートウェイのグローバル設定とデータベース・アクセス記述子(DAD)固有の設定を検証および変更するためのサブプログラム・インタフェースが含まれています。
表63-2 構成サブプログラム・グループ
サブプログラム | 説明 |
---|---|
新規DADを作成します。 |
|
DAD属性を削除します。 |
|
グローバル属性を削除します。 |
|
DADを削除します。 |
|
DADのすべての属性を取得します。 |
|
指定したDADがマップされる仮想パスをすべて取得します。 |
|
すべてのグローバル属性およびグローバル値を取得します。 |
|
DAD属性の値を取得します。 |
|
埋込みゲートウェイ・インスタンス用のすべてのDADのリストを取得します。 |
|
グローバル属性の値を取得します。 |
|
指定した仮想パスにDADをマップします。 |
|
DADの値を設定します。 |
|
グローバル属性の値を設定します。 |
|
指定した仮想パスからDADをマッピング解除します。 |
63.6 DBMS_EPGサブプログラムの要約
この表は、DBMS_ALERT
サブプログラムを示し、簡単に説明しています。
表63-4 DBMS_EPGパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
データベース・ユーザーの権限を使用してプロシージャを起動し、ドキュメント表にアクセスするためのDADを認証します。 |
|
新規DADを作成します。 |
|
データベース・ユーザーの権限を使用してプロシージャを起動し、ドキュメント表にアクセスするためのDADを認証解除します。 |
|
DAD属性を削除します。 |
|
グローバル属性を削除します。 |
|
DADを削除します。 |
|
DADのすべての属性を取得します。 |
|
指定したDADがマップされる仮想パスをすべて取得します。 |
|
すべてのグローバル属性およびグローバル値を取得します。 |
|
DAD属性の値を取得します。 |
|
埋込みゲートウェイ・インスタンス用のすべてのDADのリストを取得します。 |
|
グローバル属性の値を取得します。 |
|
指定した仮想パスにDADをマップします。 |
|
DADの値を設定します。 |
|
グローバル属性の値を設定します。 |
|
指定した仮想パスからDADをマッピング解除します。 |
63.6.1 AUTHORIZE_DADプロシージャ
このプロシージャは、データベース・ユーザーの権限を使用してプロシージャを起動し、ドキュメント表にアクセスするためのDADを認証します。実行者は、常に自身の権限の使用を認証することができます。
参照:
このグループの他のサブプログラムについては、「認証サブプログラム」を参照してください。
構文
DBMS_EPG.AUTHORIZE_DAD ( dad_name IN VARCHAR2, path IN VARCHAR2 DEFAULT NULL);
パラメータ
表63-5 AUTHORIZE_DADプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
作成するDADの名前。 |
|
権限を認証解除するユーザー。使用した場合は、実行者と想定されます。 |
使用上のノート
-
他のユーザーの権限の使用を認証するには、
ALTER
USER
システム権限が必要です。 -
DADは存在する必要がありますが、DADのdatabase-username属性を、認証するユーザーに設定する必要はありません。
-
複数のユーザーが同一のDADを認証することができます。使用するユーザーの権限は、DADのdatabase-username設定によって決まります。
例外
DADまたはユーザーが存在しない場合、あるいは実行者が必要なシステム権限を持っていない場合は、エラーが発生します。
例
DBMS_EPG.AUTHORIZE_DAD('HR');
63.6.2 CREATE_DADプロシージャ
このプロシージャは、新規DADを作成します。
参照:
このグループの他のサブプログラムについては、「構成サブプログラム」を参照してください。
構文
DBMS_EPG.CREATE_DAD ( dad_name IN VARCHAR2, path IN VARCHAR2 DEFAULT NULL);
パラメータ
表63-6 CREATE_DADプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
作成するDADの名前。 |
|
DADをマップする仮想パス。 |
63.6.3 DEAUTHORIZE_DADプロシージャ
このプロシージャは、データベース・ユーザーの権限を使用してプロシージャを起動し、ドキュメント表にアクセスするためのDADを認証解除します。実行者は、常に自身の権限の使用を認証解除することができます。
参照:
このグループの他のサブプログラムについては、「認証サブプログラム」を参照してください。
構文
DBMS_EPG.DEAUTHORIZE_DAD ( dad_name IN VARCHAR2, path IN VARCHAR2 DEFAULT NULL);
パラメータ
表63-7 DEAUTHORIZE_DADプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
使用を認証解除するDADの名前。 |
|
権限を認証解除するユーザー。使用した場合は、実行者と想定されます。 |
使用上のノート
他のユーザーの権限の使用を認証解除するには、ALTER
USER
システム権限が必要です。
例外
DADまたはユーザーが存在しない場合、あるいは実行者が必要なシステム権限を持っていない場合は、エラーが発生します。
例
DBMS_EPG.DEAUTHORIZE_DAD('HR');
63.6.4 DELETE_DAD_ATTRIBUTEプロシージャ
このプロシージャは、DAD属性を削除します。
参照:
このグループの他のサブプログラムについては、「構成サブプログラム」を参照してください。
構文
DBMS_EPG.DELETE_DAD_ATTRIBUTE ( dad_name IN VARCHAR2, attr_name IN VARCHAR2);
パラメータ
表63-8 DELETE_DAD_ATTRIBUTEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
DAD属性を削除するDADの名前。 |
|
削除するDAD属性の名前。 |
例外
DADが存在しない場合は、エラーが発生します。
63.6.5 DELETE_GLOBAL_ATTRIBUTEプロシージャ
このプロシージャは、グローバル属性を削除します。
参照:
このグループの他のサブプログラムについては、「構成サブプログラム」を参照してください。
構文
DBMS_EPG.DELETE_GLOBAL_ATTRIBUTE ( attr_name IN VARCHAR2);
パラメータ
表63-9 DELETE_GLOBAL_ATTRIBUTEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
削除するグローバル属性。 |
63.6.6 DROP_DADプロシージャ
このプロシージャは、DADを削除します。DADのすべての仮想パス・マッピングも削除されます。
参照:
このグループの他のサブプログラムについては、「構成サブプログラム」を参照してください。
構文
DBMS_EPG.DROP_DAD ( dadname IN VARCHAR2);
パラメータ
表63-10 DROP_DADプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
削除するDAD。 |
例外
DADが存在しない場合は、エラーが発生します。
63.6.7 GET_ALL_DAD_ATTRIBUTESプロシージャ
このプロシージャは、DADのすべての属性を取得します。名前/値ペア形式の、相関関係にある2つの索引付き表が出力されます。
参照:
このグループの他のサブプログラムについては、「構成サブプログラム」を参照してください。
構文
DBMS_EPG.GET_ALL_DAD_ATTRIBUTES ( dad_name IN VARCHAR2, attr_names OUT NOCOPY VARCHAR2_TABLE, attr_values OUT NOCOPY VARCHAR2_TABLE);
パラメータ
表63-11 GET_ALL_DAD_ATTRIBUTESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
DADの名前。 |
|
属性名。 |
|
属性値。 |
例外
DADが存在しない場合は、エラーが発生します。
使用上のノート
DADに属性が設定されていない場合、attr_names
およびattr_values
は、空の配列に設定されます。
63.6.8 GET_ALL_DAD_MAPPINGSプロシージャ
このプロシージャは、指定したDADがマップされる仮想パスをすべて取得します。
参照:
このグループの他のサブプログラムについては、「構成サブプログラム」を参照してください。
構文
DBMS_EPG.GET_ALL_DAD_MAPPINGS ( dad_name IN VARCHAR2, paths OUT NOCOPY VARCHAR2_TABLE);
パラメータ
表63-12 GET_ALL_DAD_MAPPINGSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
DADの名前。 |
|
DADがマッピングされる仮想パス。 |
例外
DADが存在しない場合は、エラーが発生します。
使用上のノート
DADが仮想パスにマップされていない場合、paths
は、空の配列に設定されます。
63.6.9 GET_ALL_GLOBAL_ATTRIBUTESプロシージャ
このプロシージャは、すべてのグローバル属性およびグローバル値を取得します。名前/値ペア形式の、相関関係にある2つの索引付き表が出力されます。
参照:
このグループの他のサブプログラムについては、「構成サブプログラム」を参照してください。
構文
DBMS_EPG.GET_ALL_GLOBAL_ATTRIBUTES ( attr_names OUT NOCOPY VARCHAR2_TABLE, attr_values OUT NOCOPY VARCHAR2_TABLE);
パラメータ
表63-13 GET_ALL_GLOBAL_ATTRIBUTESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
グローバル属性の名前。 |
|
グローバル属性の値。 |
使用上のノート
ゲートウェイ・インスタンスにグローバル属性が設定されていない場合、attr_names
およびattr_values
は、空の配列に設定されます。
63.6.10 GET_DAD_ATTRIBUTEファンクション
このプロシージャは、DAD属性の値を取得します。
参照:
このグループの他のサブプログラムについては、「構成サブプログラム」を参照してください。
構文
DBMS_EPG.GET_DAD_ATTRIBUTE ( dad_name IN VARCHAR2, attr_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表63-14 GET_DAD_ATTRIBUTEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
属性を削除するDADの名前。 |
|
削除する属性の名前。 |
戻り値
DADの属性値を戻します。属性が不明か、または設定されていない場合は、NULL
を戻します。
例外
DADが存在しない場合は、エラーが発生します。
63.6.11 GET_DAD_LISTプロシージャ
このプロシージャは、埋込みゲートウェイ・インスタンス用のすべてのDADのリストを取得します。
参照:
このグループの他のサブプログラムについては、「構成サブプログラム」を参照してください。
構文
DBMS_EPG.GET_DAD_LIST ( dad_names OUT NOCOPY VARCHAR2_TABLE);
パラメータ
表63-15 GET_DAD_LISTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
すべてのDADのリスト。 |
使用上のノート
DADが存在しない場合、dad_names
は空の配列に設定されます。
63.6.12 GET_GLOBAL_ATTRIBUTEファンクション
このファンクションは、グローバル属性の値を取得します。
参照:
このグループの他のサブプログラムについては、「構成サブプログラム」を参照してください。
構文
DBMS_EPG.GET_GLOBAL_ATTRIBUTE ( attr_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表63-16 GET_GLOBAL_ATTRIBUTEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
取得するグローバル属性。 |
戻り値
グローバル属性の値を戻します。属性が設定されていないか、または有効な属性でない場合は、NULL
を戻します。
63.6.13 MAP_DADプロシージャ
このプロシージャは、指定した仮想パスにDADをマップします。仮想パスがすでに存在する場合、元の仮想パス・マッピングは上書きされます。
参照:
このグループの他のサブプログラムについては、「構成サブプログラム」を参照してください。
構文
DBMS_EPG.MAP_DAD ( dad_name IN VARCHAR2, path IN VARCHAR2);
パラメータ
表63-17 MAP_DADプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
マップするDADの名前。 |
|
マップする仮想パス。 |
例外
DADが存在しない場合は、エラーが発生します。
63.6.14 SET_DAD_ATTRIBUTEプロシージャ
このプロシージャは、DADの値を設定します。
参照:
このグループの他のサブプログラムについては、「構成サブプログラム」を参照してください。
構文
DBMS_EPG.SET_DAD_ATTRIBUTE ( dad_name IN VARCHAR2, attr_name IN VARCHAR2, attr_value IN VARCHAR2);
パラメータ
表63-18 SET_DAD_ATTRIBUTEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
属性を設定するDADの名前。 |
|
設定する属性の名前。 |
|
設定する属性値。 |
表63-19 mod_plsql DAD属性と埋込みPL/SQLゲートウェイDAD属性間のマッピング
mod_plsql DAD属性 | 埋込みPL/SQLゲートウェイDAD属性 | 複数回の出現を許可 | 有効な値 |
---|---|---|---|
|
|
いいえ |
文字列 |
|
|
いいえ |
On、Offの列挙 |
|
|
いいえ |
Basic、SingleSignOn、GlobalOwa、CustomOwa、PerPackageOwaの列挙 |
|
|
いいえ |
文字列 |
|
|
はい |
符号なしの整数 |
|
|
はい |
符号なしの整数 |
|
|
はい |
文字列 |
|
|
いいえ |
符号なしの整数 |
|
|
いいえ |
文字列 |
|
|
いいえ |
文字列 |
|
|
いいえ |
文字列 |
|
|
いいえ |
文字列 |
|
|
いいえ |
文字列 |
|
|
いいえ |
ApacheStyle、ModplsqlStyle、DebugStyleの列挙 |
|
|
はい |
文字列 |
|
|
いいえ |
符号なしの整数 |
|
|
いいえ |
InfoDebugの列挙 |
|
|
いいえ |
On、Offの列挙 |
|
|
いいえ |
符号なしの整数 |
|
|
いいえ |
文字列 |
|
|
いいえ |
文字列 |
|
|
いいえ |
文字列 |
|
|
いいえ |
文字列 |
|
|
いいえ |
文字列 |
|
|
いいえ |
StatelessWithResetPackageState、StatelessWithFastRestPackageState、StatelessWithPreservePackageStateの列挙 |
|
|
いいえ |
Char、Rawの列挙 |
|
|
いいえ |
文字列 |
例外
DADが存在しないか、または属性が不明の場合は、エラーが発生します。
使用上のノート
-
以前に
attr_name
属性が設定されている場合、元の値は新しいattr_value
引数によって上書きされます。 -
埋込みゲートウェイでは、属性が設定されていない場合、デフォルト値が想定されます。DAD属性のデフォルト値は、埋込みゲートウェイのほとんどのユーザーにとって十分な値である必要があります。mod_plsqlユーザーは、次のことに注意してください。
-
PlsqlDatabasePassword
属性は必要ありません。 -
埋込みゲートウェイは外部データベースへのログオンをサポートしていないため、
PlsqlDatabaseConnectString
属性は必要ありません。
-
例
DBMS_EPG.SET_DAD_ATTRIBUTE('HR', 'default-page', 'HRApp.home');
63.6.15 SET_GLOBAL_ATTRIBUTEプロシージャ
このプロシージャは、グローバル属性の値を設定します。
参照:
このグループの他のサブプログラムについては、「構成サブプログラム」を参照してください。
構文
DBMS_EPG.SET_GLOBAL_ATTRIBUTE ( attr_name IN VARCHAR2, attr_value IN VARCHAR2);
パラメータ
表63-20 SET_GLOBAL_ATTRIBUTEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
設定するグローバル属性。 |
|
設定する属性値。 |
表63-21 mod_plsqlグローバル属性と埋込みPL/SQLゲートウェイ・グローバル属性間のマッピング
mod_plsqlグローバル属性 | 埋込みPL/SQLゲートウェイ・グローバル属性 | 複数回の出現を許可 | 有効な値 |
---|---|---|---|
|
|
いいえ |
符号なしの整数 |
|
|
いいえ |
符号なしの整数 |
使用上のノート
-
属性名では、大/小文字が区別されます。値は、属性によって、大/小文字が区別される場合とされない場合があります。
-
以前に
attr_name
属性が設定されている場合、元の値は新しいattr_value
引数によって上書きされます。
例外
属性が不明な場合は、エラーが発生します。
例
dbms_epg.set_global_attribute('max-parameters', '100');
63.6.16 UNMAP_DADプロシージャ
このプロシージャは、指定した仮想パスからDADをマッピング解除します。パスがNULL
の場合、このプロシージャは、DADのすべての仮想パス・マッピングを削除しますが、DADは保存します。
参照:
このグループの他のサブプログラムについては、「構成サブプログラム」を参照してください。
構文
DBMS_EPG.UNMAP_DAD ( dad_name IN VARCHAR2, path IN VARCHAR2 DEFAULT NULL);
パラメータ
表63-22 UNMAP_DADプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
マッピング解除するDADの名前。 |
|
マッピング解除する仮想パス。 |
使用上のノート
DADが存在しない場合は、エラーが発生します。