7 Oracle REST Data Services管理PL/SQLパッケージのリファレンス
Oracle REST Data Services(ORDS) ADMIN PL/SQLパッケージには、Oracle REST Data Servicesを使用してRESTfulサービスを開発および管理するための特権ユーザー用サブプログラム(プロシージャおよびファンクション)が含まれています。
データベース・ユーザーは、ORDS_ADMIN
パッケージを起動する前に、ORDS_ADMINISTRATOR_ROLE
データベース・ロールを付与されている必要があります。
ORDS_ADMINISTRATOR_ROLE
ロールがADMIN
ユーザーに付与されます。GRANT ORDS_ADMINSTRATOR_ROLE TO ADMIN;
ORDS_ADMIN
パッケージはAUTHID CURRENT_USER
権限を除いてORDSパッケージと同等であり、非推奨メソッドがなく、ターゲット・スキーマの指定が必要なすべてのメソッドおよび追加メソッドのp_schema
パラメータがありません。
7.1 ORDS_ADMIN.CREATE_ROLE
形式
ORDS_ADMIN.CREATE_ROLE(
p_schema IN ords_schemas.parsing_schema%type,
p_role_name IN sec_roles.name%type);
説明
CREATE_ROLEは、指定された名前のOracle REST Data Servicesロールを作成します。
使用上の注意
ロールを作成した後で、Oracle REST Data Services権限にロールを関連付けることができます。
例
次の例では、ロールを作成します。
BEGIN
ORDS_ADMIN.CREATE_ROLE(
p_schema => 'tickets',
p_role_name => 'Tickets User'
};
END;
/
7.2 ORDS_ADMIN.DEFINE_HANDLER
形式
ORDS_ADMIN.DEFINE_HANDLER(
p_schema IN ords_schemas.parsing_schema%type,
p_module_name IN ords_modules.name%type,
p_pattern IN ords_templates.uri_template%type,
p_method IN ords_handlers.method%type DEFAULT 'GET',
p_source_type IN ords_handlers.source_type%type
DEFAULT ords_admin.source_type_collection_feed,
p_source IN ords_handlers.source%type,
p_items_per_page IN ords_handlers.items_per_page%type DEFAULT NULL,
p_mimes_allowed IN ords_handlers.mimes_allowed%type DEFAULT NULL,
p_comments IN ords_handlers.comments%type DEFAULT NULL);
説明
DEFINE_HANDLERはモジュール・ハンドラを定義します。ハンドラがすでに存在する場合、そのハンドラと既存のすべてのハンドラはこの定義によって置き換えられます。それ以外の場合、新しいハンドラが作成されます。
パラメータ
- p_schema
-
スキーマの名前です。このパラメータは必須です。
- p_module_name
-
所有RESTfulサービス・モジュールの名前です。大/小文字が区別されます。
- p_pattern
-
所有リソース・テンプレートの一致パターンです。
- p_method
-
このハンドラの応答先のHTTPメソッドです。有効な値:
GET
(リソースの表現を取得します)、POST
(新規リソースを作成またはコレクションにリソースを追加します)、PUT
(既存のリソースを更新します)、DELETE
(既存のリソースを削除します)。 - p_source_type
-
このハンドラのHTTPリクエスト・メソッドです。有効な値は次のとおりです。
-
source_type_collection_feed
。SQL問合せを実行し、結果セットをOracle REST Data Services標準JSON表現に変換します。HTTPメソッドがGETの場合に使用可能です。結果フォーマット: JSON -
source_type_collection_item
。1行分のデータをOracle REST Data Services標準JSON表現に戻すSQL問合せを実行します。HTTPメソッドがGETの場合に使用可能です。結果フォーマット: JSON -
source_type_media
。特定の書式に準拠したSQL問合せを実行し、結果セットを、表現のインターネット・メディア・タイプを識別する付随のHTTP Content-Typeヘッダーで、バイナリ表現に変換します。結果フォーマット: バイナリ -
source_type_plsql
。匿名のPL/SQLブロックを実行し、OUTまたはIN/OUTパラメータをJSON表現に変換します。HTTPメソッドが、DELETE、PUT、POSTの場合のみ使用可能です。結果フォーマット: JSON -
source_type_query || source_type_csv_query
。SQL問合せを実行し、選択した形式に応じて、結果セットをOracle REST Data ServicesレガシーJavaScript Object Notation (JSON)表現またはCSV表現に変換します。HTTPメソッドがGETの場合に使用可能です。結果フォーマット: JSONまたはCSV -
source_type_query_one_row
。1行分のデータをOracle REST Data ServicesレガシーJSON表現に戻すSQL問合せを実行します。HTTPメソッドがGETの場合に使用可能です。結果フォーマット: JSON -
source_type_feed
。SQL問合せを実行し、結果をJSONフィード表現に変換します。フィードの各アイテムには、リソースのサマリーと、リソースの完全形式へのハイパーリンクが含まれます。結果セットの各行の最初の列は、その行の一意の識別子である必要があり、path/to/feed/{id}
という形式のハイパーリンクを生成するために使用されます(最初の列の値が{id}
の値として使用されます)。その行の他の列は、リソースを要約するとみなされ、フィードに含まれます。リソースの完全形式のリソース・テンプレートも、別途定義する必要があります。結果フォーマット: JSON
-
- p_source
-
選択したHTTPメソッドのソース実装です。
- p_items_per_page
-
リソース・ハンドラHTTP操作GETメソッドのデフォルトのページ区切り、つまり、データベース問合せに基づくJSON書式結果セットのページごとに戻される行の数です。デフォルト: NULL (リソース・モジュール設定に従います)。
- p_mimes_allowed
-
ハンドラが受け入れるMIMEタイプのカンマ区切りリストです。PUTおよびPOSTにのみ適用されます。
- p_comments
-
コメント・テキストです。
使用上の注意
各HTTPメソッド(ソース・タイプ)に許可されるハンドラは1つのみです。
例
次の例では、新しいチケットを受け入れる/my/tickets/
リソースに対するPOSTハンドラを定義します。
BEGIN ORDS_ADMIN.DEFINE_HANDLER( p_schema => 'tickets', p_module_name => 'my.tickets', p_pattern => '.', p_method => 'POST', p_mimes_allowed => 'application/json', p_source_type => ords_admin.source_type_plsql, p_source => ' declare l_owner varchar2(255); l_payload blob; l_id number; begin l_payload := :body; l_owner := :owner; if ( l_owner is null ) then l_owner := :current_user; end if; l_id := ticket_api.create_ticket( p_json_entity => l_payload, p_author => l_owner ); :location := ''./'' || l_id; :status := 201; end; ' ); END; /
7.3 ORDS_ADMIN.DEFINE_MODULE
形式
ORDS_ADMIN.DEFINE_MODULE( p_schema IN ords_schemas.parsing_schema%type, p_module_name IN ords_modules.name%type, p_base_path IN ords_modules.uri_prefix%type, p_items_per_page IN ords_modules.items_per_page%type DEFAULT 25, p_status IN ords_modules.status%type DEFAULT 'PUBLISHED', p_comments IN ords_modules.comments%type DEFAULT NULL);
説明
DEFINE_MODULEはリソース・モジュールを定義します。モジュールがすでに存在する場合、そのモジュールと既存のすべてのテンプレートはこの定義によって置き換えられます。それ以外の場合、新しいモジュールが作成されます。
パラメータ
- p_schema
-
スキーマの名前です。このパラメータは必須です。
- p_module_name
-
所有RESTfulサービス・モジュールの名前です。大/小文字が区別されます。
- p_base_path
-
このRESTfulサービスにアクセスする場合に使用されるURIのベースです。例:
hr/
は、hr/
で始まるすべてのURIがこのリソース・モジュールで処理されることを意味します。 - p_items_per_page
-
リソース・ハンドラHTTP操作GETメソッドのデフォルトのページ区切り、つまり、データベース問合せに基づくJSON書式結果セットのページごとに戻される行の数です。デフォルト: 25。
- p_status
-
公開ステータスです。有効な値:
PUBLISHED
(デフォルト)またはNOT_PUBLISHED
。 - p_comments
-
コメント・テキストです。
使用上の注意
(なし。)
例
次の例では、簡単なモジュールを作成します。
BEGIN ORDS_ADMIN.DEFINE_MODULE( p_schema => 'tickets', p_module_name => 'my.tickets', p_base_path => '/my/tickets/' ); END; /
7.4 ORDS_ADMIN.DEFINE_PARAMETER
形式
ORDS_ADMIN.DEFINE_PARAMETER( p_schema IN ords_schemas.parsing_schema%type, p_module_name IN ords_modules.name%type, p_pattern IN ords_templates.uri_template%type, p_method IN ords_handlers.method%type, p_name IN ords_parameters.name%type , p_bind_variable_name IN ords_parameters.bind_variable_name%type DEFAULT NULL, p_source_type IN ords_parameters.source_type%type DEFAULT 'HEADER', p_param_type IN ords_parameters.param_type%type DEFAULT 'STRING', p_access_method IN ords_parameters.access_method%type DEFAULT 'IN', p_comments IN ords_parameters.comments%type DEFAULT NULL);
説明
DEFINE_PARAMETERはモジュール・ハンドラ・パラメータを定義します。パラメータがすでに存在する場合、そのパラメータはこの定義によって置き換えられます。それ以外の場合、新しいパラメータが作成されます。
パラメータ
- p_schema
-
スキーマの名前です。このパラメータは必須です。
- p_module_name
-
所有RESTfulサービス・モジュールの名前です。大/小文字が区別されます。
- p_pattern
-
所有リソース・テンプレートの一致パターンです。
- p_method
-
所有ハンドラHTTPメソッドです。有効な値:
GET
(リソースの表現を取得します)、POST
(新規リソースを作成またはコレクションにリソースを追加します)、PUT
(既存のリソースを更新します)、DELETE
(既存のリソースを削除します)。 - p_name
-
URIテンプレートまたはHTTPヘッダーで呼ばれるパラメータの名前です。有効なSQLパラメータ名ではない名前のマップに使用されます。
- p_bind_variable_name
-
SQLで呼ばれるパラメータの名前です。NULLが指定された場合、パラメータはバインドされません。
- p_source_type
-
パラメータがURIテンプレートまたはHTTPヘッダーで発生するかどうかが識別されるタイプです。有効な値:
HEADER
、RESPONSE
、URI
。 - p_param_type
-
パラメータのネイティブ・タイプです。有効な値:
STRING
、INT
、DOUBLE
、BOOLEAN
、LONG
、TIMESTAMP
。 - p_access_method
-
パラメータ・アクセス・メソッドです。パラメータが入力値か、出力値か、またはその両方かどうかを示します。有効な値:
IN
、OUT
、INOUT
。 - p_comments
-
コメント・テキストです。
使用上の注意
すべてのパラメータに同じハンドラの一意の名前および変数名を指定する必要があります。
例
次の例では、作成されたチケットの場所を格納するPOSTハンドラのアウトバウンド・パラメータを定義します。
BEGIN ORDS_ADMIN.DEFINE_PARAMETER( p_schema => 'tickets', p_module_name => 'my.tickets', p_pattern => '.', p_method => 'POST', p_name => 'X-APEX-FORWARD', p_bind_variable_name => 'location', p_source_type => 'HEADER', p_access_method => 'OUT' ); END; /
次の例では、操作のHTTPステータスを格納するPOSTハンドラのアウトバウンド・パラメータを定義します。
BEGIN ORDS_ADMIN.DEFINE_PARAMETER( p_schema => 'tickets', p_module_name => 'my.tickets', p_pattern => '.', p_method => 'POST', p_name => 'X-APEX-STATUS-CODE', p_bind_variable_name => 'status', p_source_type => 'HEADER', p_access_method => 'OUT' ); END; /
7.5 ORDS_ADMIN.DEFINE_PRIVILEGE
形式
ORDS_ADMIN.DEFINE_PRIVILEGE( p_schema IN ords_schemas.parsing_schema%type, p_privilege_name IN sec_privileges.name%type, p_roles IN owa.vc_arr, p_patterns IN owa.vc_arr, p_modules IN owa.vc_arr, p_label IN sec_privileges.label%type DEFAULT NULL, p_description IN sec_privileges.description%type DEFAULT NULL, p_comments IN sec_privileges.comments%type DEFAULT NULL); or ORDS_ADMIN.DEFINE_PRIVILEGE( p_schema IN ords_schemas.parsing_schema%type, p_privilege_name IN sec_privileges.name%type, p_roles IN owa.vc_arr, p_patterns IN owa.vc_arr, p_label IN sec_privileges.label%type DEFAULT NULL, p_description IN sec_privileges.description%type DEFAULT NULL, p_comments IN sec_privileges.comments%type DEFAULT NULL); or ORDS_ADMIN.DEFINE_PRIVILEGE( p_schema IN ords_schemas.parsing_schema%type, p_privilege_name IN sec_privileges.name%type, p_roles IN owa.vc_arr, p_label IN sec_privileges.label%type DEFAULT NULL, p_description IN sec_privileges.description%type DEFAULT NULL, p_comments IN sec_privileges.comments%type DEFAULT NULL);
説明
DEFINE_PRIVILEGEはOracle REST Data Services権限を定義します。権限がすでに存在する場合、その権限、既存のすべてのパターン、モジュールおよびロールとのすべての関連付けは、この定義によって置き換えられます。それ以外の場合、新しい権限が作成されます。
パラメータ
- p_schema
-
スキーマの名前です。このパラメータは必須です。
- p_privilege_name
-
権限名空白は使用できません。
- p_roles
-
ロールの名前です。このうち少なくとも1つが権限に必要になります。空にできます。この場合、ユーザーの認証は必要ですが、特定のロールは必要ありません。ただし、nullにはできません。認証されていないユーザーはアクセスを拒否されます。
- p_patterns
-
パターンのリストです。
- p_modules
-
現在のスキーマに作成されたモジュールを参照しているモジュール名のリストです。
- p_label
-
エンド・ユーザーに表示されるこのセキュリティ制約の名前です。nullも指定できます。
- p_description
-
この制約によって保護されるリソースの目的の簡単な説明です。
- p_comments
-
コメント・テキストです。
使用上の注意
p_roles
、p_patterns
およびp_modules
にはnull値を指定できません。値を渡さない場合は、適切なプロシージャ仕様を選択するか、空のowa.vc_arr
値を渡します。
例
次の例では、ロール、パターンおよびモジュールに結合された権限を作成します。
DECLARE l_priv_roles owa.vc_arr; l_priv_patterns owa.vc_arr; l_priv_modules owa.vc_arr; BEGIN l_priv_roles(1) := 'Tickets User'; l_priv_patterns(1) := '/my/*'; l_priv_patterns(2) := '/comments/*'; l_priv_patterns(3) := '/tickets_feed/*'; l_priv_patterns(4) := '/tickets/*'; l_priv_patterns(5) := '/categories/*'; l_priv_patterns(6) := '/stats/*'; l_priv_modules(1) := 'my.tickets'; ords_admin.create_role( p_schema => 'tickets', p_role_name => 'Tickets User' }; ords_admin.define_privilege( p_schema => 'tickets', p_privilege_name => 'tickets.privilege', p_roles => l_priv_roles, p_patterns => l_priv_patterns, P_modules => l_priv_modules, p_label => 'Task Ticketing Access', p_description => 'Provides the ability to create, ' || 'update and delete tickets ' || 'and post comments on tickets' ); END; /
次の例では、ロールおよびパターンに結合された権限を作成します。
DECLARE l_priv_roles owa.vc_arr; l_priv_patterns owa.vc_arr; BEGIN l_priv_roles(1) := 'Tickets User'; l_priv_patterns(1) := '/my/*'; l_priv_patterns(2) := '/comments/*'; l_priv_patterns(3) := '/tickets_feed/*'; l_priv_patterns(4) := '/tickets/*'; l_priv_patterns(5) := '/categories/*'; l_priv_patterns(6) := '/stats/*'; ords_admin.create_role( p_schema => 'tickets', p_role_name => 'Tickets User' }; ords_admin.define_privilege( p_schema => 'tickets', p_privilege_name => 'tickets.privilege', p_roles => l_priv_roles, p_patterns => l_priv_patterns, p_label => 'Task Ticketing Access', p_description => 'Provides the ability to create, ' || 'update and delete tickets ' || 'and post comments on tickets' ); END; /
次の例では、ロールに結合された権限を作成します。
DECLARE l_priv_roles owa.vc_arr; BEGIN l_priv_roles(1) := 'Tickets User'; ords_admin.create_role( p_schema => 'tickets', p_role_name => 'Tickets User' }; ords_admin.define_privilege( p_schema => 'tickets', p_privilege_name => 'tickets.privilege', p_roles => l_priv_roles, p_label => 'Task Ticketing Access', p_description => 'Provides the ability to create, ' || 'update and delete tickets ' || 'and post comments on tickets' ); END; /
7.6 ORDS_ADMIN.DEFINE_SERVICE
形式
ORDS_ADMIN.DEFINE_SERVICE( p_schema IN ords_schemas.parsing_schema%type, p_module_name IN ords_modules.name%type, p_base_path IN ords_modules.uri_prefix%type, p_pattern IN ords_templates.uri_template%type, p_method IN ords_handlers.method%type DEFAULT 'GET', p_source_type IN ords_handlers.source_type%type DEFAULT ords_admin.source_type_collection_feed, p_source IN ords_handlers.source%type, p_items_per_page IN ords_modules.items_per_page%type DEFAULT 25, p_status IN ords_modules.status%type DEFAULT 'PUBLISHED', p_etag_type IN ords_templates.etag_type%type DEFAULT 'HASH', p_etag_query IN ords_templates.etag_query%type DEFAULT NULL, p_mimes_allowed IN ords_handlers.mimes_allowed%type DEFAULT NULL, p_module_comments IN ords_modules.comments%type DEFAULT NULL, p_template_comments IN ords_modules.comments%type DEFAULT NULL, p_handler_comments IN ords_modules.comments%type DEFAULT NULL);
説明
DEFINE_SERVICEは、リソース・モジュール、リソース・テンプレートおよびリソース・ハンドラを1つの呼出しで定義します。モジュールがすでに存在する場合、そのモジュールと既存のすべてのテンプレートはこの定義によって置き換えられます。それ以外の場合、新しいモジュールが作成されます。
パラメータ
- p_schema
-
スキーマの名前です。このパラメータは必須です。
- p_module_name
-
RESTfulサービス・モジュールの名前です。大/小文字が区別されます。一意である必要があります。
- p_base_path
-
このRESTfulサービスにアクセスする場合に使用されるURIのベースです。例:
hr/
は、hr/
で始まるすべてのURIがこのリソース・モジュールで処理されることを意味します。 - p_pattern
-
リソース・テンプレートの一致パターンです。たとえば、
/objects/:object/:id?
のパターンは/objects/emp/101
と一致し(101のid
でemp
リソースにあるアイテムのリクエストと一致)、/objects/emp/
とも一致します。(:id
パラメータには?
修飾子の注釈が付き、これはid
パラメータがオプションであることを示すため、emp
リソースのリクエストとも一致します。) - p_method
-
このハンドラの応答先のHTTPメソッドです。有効な値:
GET
(リソースの表現を取得します)、POST
(新規リソースを作成またはコレクションにリソースを追加します)、PUT
(既存のリソースを更新します)、DELETE
(既存のリソースを削除します)。 - p_source_type
-
このハンドラのHTTPリクエスト・メソッドです。有効な値は次のとおりです。
-
source_type_collection_feed
。SQL問合せを実行し、結果セットをOracle REST Data Services標準JSON表現に変換します。HTTPメソッドがGETの場合に使用可能です。結果フォーマット: JSON -
source_type_collection_item
。1行分のデータをOracle REST Data Services標準JSON表現に戻すSQL問合せを実行します。HTTPメソッドがGETの場合に使用可能です。結果フォーマット: JSON -
source_type_media
。特定の書式に準拠したSQL問合せを実行し、結果セットを、表現のインターネット・メディア・タイプを識別する付随のHTTP Content-Typeヘッダーで、バイナリ表現に変換します。結果フォーマット: バイナリ -
source_type_plsql
。匿名のPL/SQLブロックを実行し、OUTまたはIN/OUTパラメータをJSON表現に変換します。HTTPメソッドが、DELETE、PUT、POSTの場合のみ使用可能です。結果フォーマット: JSON -
source_type_query || source_type_csv_query
。SQL問合せを実行し、選択した形式に応じて、結果セットをOracle REST Data ServicesレガシーJavaScript Object Notation (JSON)表現またはCSV表現に変換します。HTTPメソッドがGETの場合に使用可能です。結果フォーマット: JSONまたはCSV -
source_type_query_one_row
。1行分のデータをOracle REST Data ServicesレガシーJSON表現に戻すSQL問合せを実行します。HTTPメソッドがGETの場合に使用可能です。結果フォーマット: JSON -
source_type_feed
。SQL問合せを実行し、結果をJSONフィード表現に変換します。フィードの各アイテムには、リソースのサマリーと、リソースの完全形式へのハイパーリンクが含まれます。結果セットの各行の最初の列は、その行の一意の識別子である必要があり、path/to/feed/{id}
という形式のハイパーリンクを生成するために使用されます(最初の列の値が{id}
の値として使用されます)。その行の他の列は、リソースを要約するとみなされ、フィードに含まれます。リソースの完全形式のリソース・テンプレートも、別途定義する必要があります。結果フォーマット: JSON
-
- p_source
-
選択したHTTPメソッドのソース実装です。
- p_items_per_page
-
リソース・ハンドラHTTP操作GETメソッドのデフォルトのページ区切り、つまり、データベース問合せに基づくJSON書式結果セットのページごとに戻される行の数です。デフォルト: NULL (リソース・モジュール設定に従います)。
- p_status
-
公開ステータスです。有効な値:
PUBLISHED
(デフォルト)またはNOT_PUBLISHED
。 - p_etag_type
-
リソース・テンプレートによって使用されるエンティティ・タグのタイプです。エンティティ・タグとは、リソースのバージョン識別子として動作するHTTPヘッダーです。エンティティ・タグを使用して、以前取得したリソースの取得を避け、リソースを更新する際にコミット時のロックを実行します。有効な値は、
HASH
、QUERY
、NONE
です。-
HASH
(Secure HASHとも呼ばれる): 戻されたリソース表現の内容は、特定のリソース・バージョンの一意のフィンガープリントを提供するためのセキュア・ダイジェスト・ファンクションを使用してハッシュ化されています。 -
QUERY
: リソース・バージョンを一意に識別する問合せを手動で定義します。手動で定義した問合せによって、リソース表現全体をハッシュ化するより効率的にエンティティ・タグが生成されることが多いです。 -
NONE
: エンティティ・タグを生成しません。
-
- p_etag_query
-
エンティティ・タグの生成に使用される問合せです。
- p_mimes_allowed
-
ハンドラが受け入れるMIMEタイプのカンマ区切りリストです。PUTおよびPOSTにのみ適用されます。
- p_module_comments
-
コメント・テキストです。
- p_template_comments
-
コメント・テキストです。
- p_handler_comments
-
コメント・テキストです。
使用上の注意
リソース・モジュール、リソース・テンプレートおよびリソース・ハンドラを1つの呼出しで作成します。
例
次の例では、現在のユーザーのチケットを取得するRESTサービスを定義します。
BEGIN ORDS_ADMIN.DEFINE_SERVICE( p_schema => 'tickets', p_module_name => 'my.tickets', p_base_path => '/my/tickets/', p_pattern => '.', p_source => 'select t.id "$.id", t.id, t.title from tickets t' || ' where t.owner = :current_user order by t.updated_on desc' ); END; /
次の例では、カテゴリによってフィルタされたチケットを取得するRESTサービスを定義します。
BEGIN ORDS_ADMIN.DEFINE_SERVICE( p_schema => 'tickets', p_module_name => 'by.category', p_base_path => '/by/category/', p_pattern => ':category_id', p_source => 'select ''../../my/tickets/'' || t.id "$.id", t.id, t.title' || ' from tickets t, categories c, ticket_categories tc' || ' where c.id = :category_id and c.id = tc.category_id and' || ' tc.ticket_id = t.id order by t.updated_on desc' ); END; /
7.7 ORDS_ADMIN.DEFINE_TEMPLATE
形式
ORDS_ADMIN.DEFINE_TEMPLATE( p_schema IN ords_schemas.parsing_schema%type, p_module_name IN ords_modules.name%type, p_pattern IN ords_templates.uri_template%type, p_priority IN ords_templates.priority%type DEFAULT 0, p_etag_type IN ords_templates.etag_type%type DEFAULT 'HASH', p_etag_query IN ords_templates.etag_query%type DEFAULT NULL, p_comments IN ords_templates.comments%type DEFAULT NULL);
説明
DEFINE_TEMPLATEはリソース・テンプレートを定義します。テンプレートがすでに存在する場合、そのテンプレートと既存のすべてのハンドラはこの定義によって置き換えられます。それ以外の場合、新しいテンプレートが作成されます。
パラメータ
- p_module_name
-
所有RESTfulサービス・モジュールの名前です。大/小文字が区別されます。
- p_pattern
-
リソース・テンプレートの一致パターンです。たとえば、
/objects/:object/:id?
のパターンは/objects/emp/101
と一致し(101のid
でemp
リソースにあるアイテムのリクエストと一致)、/objects/emp/
とも一致します。(:id
パラメータには?
修飾子の注釈が付き、これはid
パラメータがオプションであることを示すため、emp
リソースのリクエストとも一致します。) - p_priority
-
リソース・テンプレートを評価する優先順位: 0 (低優先度。デフォルト)から9 (高優先度)です。
- p_etag_type
-
リソース・テンプレートによって使用されるエンティティ・タグのタイプです。エンティティ・タグとは、リソースのバージョン識別子として動作するHTTPヘッダーです。エンティティ・タグを使用して、以前取得したリソースの取得を避け、リソースを更新する際にコミット時のロックを実行します。有効な値は、
HASH
、QUERY
、NONE
です。-
HASH
(Secure HASHとも呼ばれる): 戻されたリソース表現の内容は、特定のリソース・バージョンの一意のフィンガープリントを提供するためのセキュア・ダイジェスト・ファンクションを使用してハッシュ化されています。 -
QUERY
: リソース・バージョンを一意に識別する問合せを手動で定義します。手動で定義した問合せによって、リソース表現全体をハッシュ化するより効率的にエンティティ・タグが生成されることが多いです。 -
NONE
: エンティティ・タグを生成しません。
-
- p_etag_query
-
エンティティ・タグの生成に使用される問合せです。
- p_comments
-
コメント・テキストです。
使用上の注意
リソース・テンプレートのパターンは、リソース・モジュールで一意である必要があります。
例
次の例では、チケットのアイテムを表示するためのリソースを定義します。
BEGIN ORDS_ADMIN.DEFINE_TEMPLATE( p_schema => 'tickets', p_module_name => 'my.tickets', p_pattern => '/:id' ); END; /
7.8 ORDS_ADMIN.DELETE_MODULE
形式
ORDS_ADMIN.DELETE_MODULE( p_schema IN ords_schemas.parsing_schema%type, p_module_name IN ords_modules.name%type);
説明
DELETE_MODULEはリソース・モジュールを削除します。
使用上の注意
モジュールがまだ存在しないか、現在のユーザーがモジュールにアクセス可能な場合、例外は発生しません。
例
次の例では、リソース・モジュールを削除します。
BEGIN ORDS_ADMIN.DELETE_MODULE( p_schema => 'tickets', p_module_name => 'my.tickets' ); END; /
7.10 ORDS_ADMIN.DELETE_ROLE
形式
ORDS_ADMIN.DELETE_ROLE( p_schema IN ords_schemas.parsing_schema%type, p_role_name IN sec_roles.name%type);
説明
DELETE_ROLEは指定されたロールを削除します。
使用上の注意
これは、ロールとそのロールを参照するすべての権限との間の関連付けも削除します。
ロールがまだ存在しない場合、例外は発生しません。
例
次の例では、ロールを削除します。
BEGIN ORDS_ADMIN.DELETE_ROLE( p_schema => 'tickets', p_role_name => 'Tickets User' ); END; /
7.11 ORDS_ADMIN.DROP_REST_FOR_SCHEMA
形式
ORDS_ADMIN.DROP_REST_FOR_SCHEMA( p_schema ords_schemas.parsing_schema%type);
説明
DROP_REST_FOR_SCHEMAは、関連付けられたスキーマのすべての自動REST Oracle REST Data Servicesメタデータを削除します。
使用上の注意
このプロシージャは、事実上、ORDS.Enable_Schema
プロシージャによって実行されたアクションを元に戻します。
例
次の例では、TICKETSスキーマのすべての自動REST Oracle REST Data Servicesメタデータを削除します。
BEGIN ORDS_ADMIN.DROP_REST_FOR_SCHEMA( p_schema => 'tickets' ); END; /
7.12 ORDS_ADMIN.ENABLE_OBJECT
形式
ORDS_ADMIN.ENABLE_OBJECT( p_enabled IN boolean DEFAULT TRUE, p_schema IN ords_schemas.parsing_schema%, p_object IN ords_objects.parsing_object%type, p_object_type IN ords_objects.type%type DEFAULT 'TABLE', p_object_alias IN ords_objects.object_alias%type DEFAULT NULL, p_auto_rest_auth IN boolean DEFAULT NULL);
説明
ENABLE_OBJECTは、スキーマで、指定した表またはビューへのOracle REST Data Servicesアクセスを有効にします。
パラメータ
- p_enabled
-
アクセスを有効にするには、
TRUE
、アクセスを無効にするには、FALSE
です。 - p_schema
-
表またはビューのスキーマの名前です。このパラメータは必須です。
- p_object
-
表またはビューの名前。
- p_object_type
-
オブジェクトのタイプ:
TABLE
(デフォルト)またはVIEW
です。 - p_object_alias
-
オブジェクトの別名です。
- p_auto_rest_auth
-
Oracle REST Data Servicesメタデータへのアクセスをこのオブジェクトに許可する前に、ユーザーの認可を必要とするかどうかを制御します。この値が
TRUE
の場合、サービスは次のロールによって保護されます。-
oracle.dbtools.autorest.any.schema
-
oracle.dbtools.role.autorest.<SCHEMANAME>.<OBJECTNAME>
-
使用上の注意
なし。
例
次の例では、CATEGORIESという名前の表を有効化します。
BEGIN ORDS_ADMIN.ENABLE_OBJECT( p_schema => 'tickets', p_object=>'CATEGORIES' ); END; /
次の例では、TICKETS_FEEDという名前のビューを有効化します。
BEGIN ORDS_ADMIN.ENABLE_OBJECT( p_schema => 'tickets', p_object => 'TICKETS_FEED', p_object_type => 'VIEW' ); END; /
7.13 ORDS_ADMIN.DROP_REST_FOR_OBJECT
形式
ORDS_ADMIN.DROP_REST_FOR_OBJECT( p_schema IN ords_schemas.parsing_schema%, p_object IN ords_objects.parsing_object%type);
説明
DROP_REST_FOR_OBJECTは、関連付けられたスキーマ・オブジェクトのすべての自動REST Oracle REST Data Servicesメタデータを削除します。
使用上の注意
このプロシージャは、事実上、ORDS_ADMIN.ENABLE_OBJECT
プロシージャによって実行されたアクションを元に戻します。
例
次の例では、TICKETSスキーマのCATEGORIES表のすべての自動REST Oracle REST Data Servicesメタデータを削除します。
BEGIN ORDS_ADMIN.DROP_REST_FOR_OBJECT( p_schema => 'tickets', p_object=>'CATEGORIES' ); END; /
7.14 ORDS_ADMIN.ENABLE_SCHEMA
形式
ORDS_ADMIN.ENABLE_SCHEMA p_enabled IN boolean DEFAULT TRUE, p_schema IN ords_schemas.parsing_schema%type, p_url_mapping_type IN ords_url_mappings.type%type DEFAULT 'BASE_PATH', p_url_mapping_pattern IN ords_url_mappings.pattern%type DEFAULT NULL, p_auto_rest_auth IN boolean DEFAULT NULL);
説明
ENABLE_SCHEMAにより、Oracle REST Data Servicesは指定されたスキーマにアクセスできます。
パラメータ
- p_enabled
-
Oracle REST Data Servicesアクセスを有効にするには、
TRUE
、Oracle REST Data Servicesアクセスを無効にするには、FALSE
です。 - p_schema
-
スキーマの名前です。このパラメータは必須です。
- p_url_mapping_type
-
URLマッピング・タイプ:
BASE_PATH
またはBASE_URL
。 - p_url_mapping_pattern
-
URLマッピング・パターンです。
- p_auto_rest_auth
-
スキーマの場合、このスキーマのOracle REST Data Servicesメタデータ・カタログへのアクセスを許可する前に、Oracle REST Data Servicesがユーザーの認可を必要とするかどうかを制御します。
使用上の注意
なし。
例
次の例では、現在のスキーマを有効化します。
BEGIN ORDS_ADMIN.ENABLE_SCHEMA( p_schema => 'tickets' ); END; /
7.15 ORDS_ADMIN.PUBLISH_MODULE
形式
ORDS_ADMIN.PUBLISH_MODULE( p_schema IN ords_schemas.parsing_schema%type, p_module_name IN ords_modules.name%type, p_status IN ords_modules.status%type DEFAULT 'PUBLISHED');
説明
PUBLISH_MODULEは、Oracle REST Data Servicesリソース・モジュールの公開ステータスを変更します。
パラメータ
使用上の注意
(なし。)
例
次の例では、以前に定義したmy.tickets
という名前のモジュールを公開します。
BEGIN ORDS_ADMIN.PUBLISH_MODULE( p_schema => 'tickets', p_module_name => 'my.tickets' ); END; /
7.16 ORDS_ADMIN.RENAME_MODULE
形式
ORDS_ADMIN.RENAME_MODULE( p_schema IN ords_schemas.parsing_schema%type, p_module_name IN ords_modules.name%type, p_new_name IN ords_modules.name%type DEFAULT NULL, p_new_base_path IN ords_modules.uri_prefix%type DEFAULT NULL);
説明
RENAME_MODULEによって、Oracle REST Data Servicesリソース・モジュールの名前またはベース・パス、あるいはその両方を変更できます。
パラメータ
使用上の注意
新しいリソース・モジュールの名前とベース・パスの両方が、有効化されたスキーマ内で一意である必要があります。
例
次の例では、リソース・モジュールmy.tickets
の名前をold.tickets
に変更します。
BEGIN ORDS_ADMIN.RENAME_MODULE( p_schema => 'tickets', p_module_name =>'my.tickets', p_new_name=>'old.tickets', p_new_base_path=>'/old/tickets/'); END; /
7.17 ORDS_ADMIN.RENAME_PRIVILEGE
形式
ORDS_ADMIN.RENAME_PRIVILEGE( p_schema IN ords_schemas.parsing_schema%type, p_name IN sec_privileges.name%type, p_new_name IN sec_privileges.name%type);
説明
RENAME_PRIVILEGEは権限の名前を変更します。
使用上の注意
(なし。)
例
次の例では、権限tickets.privilege
の名前をold.tickets.privilege
に変更します。
BEGIN ORDS_ADMIN.RENAME_PRIVILEGE( p_schema => 'tickets', p_name =>'tickets.privilege', p_new_name=>'old.tickets.privilege'); END; /
7.18 ORDS_ADMIN.RENAME_ROLE
形式
ORDS_ADMIN.RENAME_ROLE( p_schema IN ords_schemas.parsing_schema%type, p_role_name IN sec_roles.name%type, p_new_name IN sec_roles.name%type);
説明
RENAME_ROLEはロールの名前を変更します。
使用上の注意
p_role_name
が存在する必要があります。
例
次の例では、既存のロールの名前を変更します。
BEGIN ORDS_ADMIN.RENAME_ROLE( p_schema=>'tickets', p_role_name=>'Tickets User', p_new_name=>'Legacy Tickets User'); END; /
7.19 ORDS_ADMIN.SET_MODULE_ORIGINS_ALLOWED
形式
ORDS_ADMIN.SET_MODULE_ORIGINS_ALLOWED p_schema IN ords_schemas.parsing_schema%type, p_module_name IN ords_modules.name%type, p_origins_allowed IN sec_origins_allowed_modules.origins_allowed%type);
説明
SET_MODULE_ORIGINS_ALLOWEDは、リソース・モジュールの許可されたオリジンを構成します。既存のすべての許可されたオリジンは置き換えられます。
パラメータ
使用上の注意
リソース・モジュールの許可されていないオリジンを示す(さらに既存のすべての許可されたオリジンを削除する)には、空のp_origins_allowed
値を指定します。
例
次では、リソース・モジュールmy.tickets
を指定した2つのオリジンに制限します。
BEGIN ORDS_ADMIN.SET_MODULE_ORIGINS_ALLOWED( p_schema => 'tickets', p_module_name => 'my.tickets', p_origins_allowed => 'http://example.com,https://example.com'); END; /
7.20 ORDS_ADMIN.SET_URL_MAPPING
形式
ORDS_ADMIN.SET_URL_MAPPING p_schema IN ords_schemas.parsing_schema%, p_url_mapping_type IN ords_url_mappings.type%type, p_url_mapping_pattern IN ords_url_mappings.pattern%type);
説明
SET_URL_MAPPINGは、指定したスキーマがリクエストURLにマップされる方法を構成します。
パラメータ
使用上の注意
(なし。)
例
次の例では、チケット・ユーザーのBASE_PATH
マッピングを作成します。
BEGIN ORDS_ADMIN.SET_URL_MAPPING( p_schema => 'tickets', p_url_mapping_type => 'BASE_PATH', p_url_mapping_pattern => 'https://example.com/ords/ticketing' ); END; /
7.21 ORDS_ADMIN.ENABLE_HOUSEKEEPING_JOB
形式
ORDS_ADMIN.ENABLE_HOUSEKEEPING_JOB(p_enabled IN boolean DEFAULT TRUE);
説明
ENABLE_HOUSEKEEPING_JOB
は、ORDS DBMS_SCHEDULER
ハウスキーピング・ジョブを作成して有効化または無効化します。非推奨のジョブCLEAN_OLD_ORDS_SESSIONS
を置き換えるジョブ名はORDS_HOUSEKEEPING_JOB
です。
パラメータ
使用上の注意
ジョブは1時間ごとに実行され、ORDSメタデータ・リポジトリ上でハウスキーピング・アクションが実行されます。コミットは不要です。
例
次の例では、ハウスキーピング・ジョブを有効化します。
EXECUTE ORDS_ADMIN.ENABLE_HOUSEKEEPING_JOB;