DBMS_DATA_ACCESSパッケージ
DBMS_DATA_ACCESS
パッケージは、データ・セットの表ハイパーリンクを生成および管理するためのルーチンを提供します。
- DBMS_DATA_ACCESSの概要
DBMS_DATA_ACCESS
パッケージの使用について説明します。 - DBMS_DATA_ACCESSセキュリティ・モデル
このパッケージのセキュリティは、選択したユーザーまたはロールにこのパッケージのEXECUTE
権限を付与することで制御できます。 - DBMS_DATA_ACCESSサブプログラムの要約
この項では、Autonomous Databaseに付属するDBMS_DATA_ACCESS
サブプログラムについて説明します。
DBMS_DATA_ACCESS概要
DBMS_DATA_ACCESS
パッケージの使用について説明します。
DBMS_DATA_ACCESS
では、次の操作がサポートされます。
- 表ハイパーリンクの生成
- 表ハイパーリンクの手動無効化
- アクティブな表ハイパーリンクのリスト
親トピック: DBMS_DATA_ACCESSパッケージ
DBMS_DATA_ACCESSセキュリティ・モデル
このパッケージのセキュリティは、選択したユーザーまたはロールにこのパッケージのEXECUTE
権限を付与することで制御できます。
DBMS_DATA_ACCESS
でEXECUTE
が付与されると、ユーザーが作成した表ハイパーリンクを作成、リストまたは無効化できます。また、デフォルトでADMINユーザーには次の権限があります。
PDB_DBA
ロールを持つADMINユーザーは、DBMS_DATA_ACCESS
に対するEXECUTE
権限を持ちます。PDB_DBA
ロールを持つADMINユーザーは、Autonomous Databaseインスタンスの任意の表ハイパーリンクをリストまたは無効化できます。
親トピック: DBMS_DATA_ACCESSパッケージ
DBMS_DATA_ACCESSサブプログラムの概要
この項では、Autonomous Databaseで提供されるDBMS_DATA_ACCESS
サブプログラムについて説明します。
サブプログラム | 説明 |
---|---|
このプロシージャは、既存の表ハイパーリンクをメンバーとして表ハイパーリンク・グループに追加します。 |
|
このプロシージャは、表ハイパーリンクまたは表ハイパーリンク・グループを生成します。 |
|
このプロシージャは、表ハイパーリンクの有効期間を延長します。 |
|
このプロシージャは、表ハイパーリンクを生成します。 このプロシージャの使用は推奨されていません。かわりに、CREATE_URLプロシージャを使用してください。 |
|
このプロシージャは、表ハイパーリンクを無効化します。 |
|
この関数は、現在アクティブなすべての表ハイパーリンクをリストします。 |
|
この手順では、表ハイパーリンク・グループのメンバーをリストします。 |
|
このプロシージャは、表ハイパーリンク・グループからメンバーを削除します。 |
- ADD_MEMBERプロシージャ
このプロシージャは、既存の表ハイパーリンクをメンバーとして表ハイパーリンク・グループに追加します。 - CREATE_URLプロシージャ
このプロシージャは、表ハイパーリンクまたは表ハイパーリンク・グループを生成します。表ハイパーリンク・グループでは、単一のURLを使用して複数の表ハイパーリンクにアクセスできます。このプロシージャはオーバーロードされています。 - GET_PREAUTHENTICATED_URLプロシージャ
このプロシージャは、表ハイパーリンクを生成します。 - EXTEND_URLプロシージャ
このプロシージャは、表ハイパーリンクまたは表ハイパーリンク・グループの存続期間を拡張します。 - INVALIDATE_URLプロシージャ
このプロシージャは、表ハイパーリンクまたは表ハイパーリンク・グループを無効にします。 - LIST_ACTIVE_URLSファンクション
このファンクションは、現在アクティブな表ハイパーリンクおよび表ハイパーリンク・グループをすべてリストします。 - LIST_MEMBERSプロシージャ
このプロシージャは、表ハイパーリンク・グループのメンバーをリストします。 - REMOVE_MEMBERプロシージャ
このプロシージャは、表ハイパーリンク・グループからメンバーを削除します。
親トピック: DBMS_DATA_ACCESSパッケージ
ADD_MEMBERプロシージャ
このプロシージャは、既存の表ハイパーリンクをメンバーとして表ハイパーリンク・グループに追加します。
構文
DBMS_DATA_ACCESS.ADD_MEMBER
(
id IN VARCHAR2,
member_id IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
パラメータ
パラメータ | 説明 |
---|---|
|
表ハイパーリンク・グループの識別子を指定します。 |
member_id |
グループに追加する表ハイパーリンクの識別子を指定します。 |
|
無効化が成功か失敗かを示すJSONを提供します( |
例
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.ADD_MEMBER
(
id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
member_id => 'Zdd1Px7QWASdqDbnndiuwTAyyEstv82PCHlS_example',
result => status);
dbms_output.put_line(status);
END;
/
親トピック: DBMS_DATA_ACCESSサブプログラムの要約
CREATE_URLプロシージャ
構文
DBMS_DATA_ACCESS.CREATE_URL
(
schema_name IN VARCHAR2,
schema_object_name IN VARCHAR2,
application_user_id IN VARCHAR2,
expiration_minutes IN NUMBER,
expiration_count IN NUMBER,
service_name IN VARCHAR2,
column_lists IN CLOB,
inherit_acl IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
DBMS_DATA_ACCESS.CREATE_URL
(
sql_statement IN CLOB,
application_user_id IN VARCHAR2,
default_bind_values IN CLOB,
expiration_minutes IN NUMBER,
expiration_count IN NUMBER,
service_name IN VARCHAR2,
column_lists IN CLOB,
inherit_acl IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
DBMS_DATA_ACCESS.CREATE_URL
(
sqls IN CLOB,
application_user_id IN VARCHAR2,
expiration_minutes IN NUMBER,
expiration_count IN NUMBER,
service_name IN VARCHAR2,
inherit_acl IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
パラメータ
パラメータ | 説明 |
---|---|
|
JSON配列の形式の詳細は、次の説明を参照してください。 |
|
オブジェクトのオーナーを指定します。 |
|
スキーマ・オブジェクト(表またはビュー)を指定します。 |
|
|
|
このオプション・パラメータは、アプリケーション・ユーザーID値を指定します。表ハイパーリンクまたは表ハイパーリンク・グループにアクセスすると、表ハイパーリンクの生成中に指定された sys_context('DATA_ACCESS_CONTEXT$', 'USER_IDENTITY') アプリケーション・コンテキストでこの値を使用するVPDポリシーを定義して、アプリケーション・ユーザーに表示される行を制限できます。 |
|
1つ以上のバインド変数のデフォルト値(バインド変数で指定された これにより、表のハイパーリンク・コンシューマは、問合せパラメータとしてバインド値を指定せずに、デフォルトのバインド値を使用して表のハイパーリンク・データにアクセスできます。 |
|
このオプション・パラメータでは、表ハイパーリンクまたは表ハイパーリンク・グループの有効期間を分単位で指定します。 最大許容有効期限は90日(129600分)です。値が129600より大きい値に設定されている場合、使用される値は129600分(90日)です。
デフォルト値: |
|
このオプション・パラメータは、表ハイパーリンクまたは表ハイパーリンク・グループで許可されるアクセス数を指定します。 デフォルト値はありません。
|
|
表ハイパーリンクの使用時にデータ取得に使用するデータベース・サービス。この表ハイパーリンクの保守に使用するサービス・レベルの保証とリソースを指定します。たとえば、オブジェクトまたはSQL文へのアクセスはサービスHIGHまたはMEDIUMにマップできますが、別のオブジェクトまたはSQL文へのアクセスはLOWサービスにマップできます。サポートされている値は、 デフォルト値は |
|
列でオプションを指定するJSON値。
形式は次のとおりです。
たとえば:
デフォルトの値
|
|
このパラメータはオプション。ACLを継承するには、値を パラメータが指定されていないか、パラメータ値が プロデューサ・データベースにACLが構成されていない場合、 デフォルト値は |
|
操作の結果を示すJSON。 |
sqls
パラメータとして指定したJSON配列の形式は次のとおりです。
属性の名前 | 必須 | 説明 |
---|---|---|
name |
いいえ | グループ・メンバー名を指定します。名前が指定されていない場合、プロシージャはデフォルト名を作成します。 |
description |
いいえ | グループ・メンバー摘要 |
sql_statement |
|
メンバーのSQL文
詳細は、SELECT文を使用した表ハイパーリンクの生成を参照してください。 |
schema_name |
いいえ |
メンバーのスキーマ名。 詳細は、「表またはビューの表ハイパーリンクの生成」を参照してください。 |
schema_object_name |
|
メンバーの表/ビュー名
詳細は、「表またはビューの表ハイパーリンクの生成」を参照してください。 |
default_bind_variable |
いいえ | バインド変数を含むsql_statements にのみ適用可能
詳細は、SELECT文を使用した表ハイパーリンクの生成を参照してください。 |
column_lists |
いいえ | グループ以外の表ハイパーリンクの作成に定義されたものと同じです。
詳細は、「列で指定されたUI機能を使用した表ハイパーリンクの生成」を参照してください。 |
使用上のノート
-
Autonomous Databaseインスタンスには、アクティブな表ハイパーリンクが128個制限されています。
- ブラウザから表ハイパーリンクを使用する場合、次のオプションがサポートされています。
- 表ハイパーリンクに
?view=table
問合せパラメータを追加して、返されたデータを色付けせずに表形式で表示します(デフォルト)。 - 返されたデータを表形式で表示し、列値に基づいて事前設定された色で色付けする列を選択します。これを行うには、表ハイパーリンクに
?view=table&colored_column_names=column_name_1,column_name_2
、...column_name_n
問合せパラメータを追加します。column_name_1
からcolumn_name_n
は、色付けする列の名前です。 - 返されたデータを表形式で表示し、
?view=table&colored_column_types=data_type
問合せパラメータを追加して、事前設定された色で色付けする特定の列データ型を選択します。サポートされているdata_type
パラメータ値は、VARCHAR
およびNONE
です。 -
sql_statement
パラメータ値は、SELECT
文である必要があります。SELECT
文では、バインド変数がサポートされています。SELECT文にバインド変数が含まれていて、値が
default_bind_values
パラメータに設定されていない場合は、データにアクセスするときに、生成された表ハイパーリンクに問合せパラメータとしてバインド変数値を追加する必要があります。default_bind_values
パラメータを含めると、データにアクセスするときに、default_bind_values
パラメータにデフォルト値が指定されている場合、バインド変数の値を省略できます。問合せパラメータとしてバインド変数値を明示的に指定することで、default_bind_values
で指定されたデフォルトのバインド変数値をオーバーライドできます。
- 表ハイパーリンクに
-
プライベート・エンドポイントを含むAutonomous Databaseインスタンスで表ハイパーリンクを生成すると、結果には
"https://private-endpoint/adb/p/parurl-token/data"
という形式の値を持つprivate_preauth_url
という名前が含まれます。プライベート・エンドポイントを使用してAutonomous Databaseインスタンスに表ハイパーリンクを生成し、プライベート・エンドポイントが「パブリック・アクセスの許可」を有効にして構成されている場合、結果にはパブリック・エンドポイントの
preauth_url
とprivate_preauth_url
の両方が含まれます。詳細は、プライベート・エンドポイントの構成およびパブリック・アクセスを許可したプライベート・エンドポイントの使用を参照してください。
サンプル
例- 特定のオブジェクトに対して生成される表ハイパーリンク
次の例では、STUDENTS_VIEW
の表ハイパーリンクを生成します。
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.CREATE_URL
(
schema_name => 'USER1',
schema_object_name => 'STUDENTS_VIEW',
expiration_minutes => 120,
service_name => 'HIGH',
result => status);
dbms_output.put_line(status);
END;
/
例- SQL文に対して生成される表ハイパーリンク
次の例では、SELECT
SQL文の表ハイパーリンクを生成します。
DECLARE
status CLOB;
par_url_app_string CLOB;
BEGIN
par_url_app_string := 1919292929;
DBMS_DATA_ACCESS.CREATE_URL
(
sql_statement => 'SELECT student_id, student_name FROM STUDENTS_VIEW ORDER BY student_id',
application_user_id => par_url_app_string,
expiration_count => 25,
result => status);
END;
/
例- バインド変数を持つSQL文に対して生成される表ハイパーリンク
次の例では、SELECT
文でバインド変数を使用して表ハイパーリンクを生成します。
set serveroutput on
DECLARE
status clob;
BEGIN
DBMS_DATA_ACCESS.CREATE_URL
(
sql_statement => 'select * from TREE_DATA WHERE COUNTY = :countyNAME',
expiration_minutes => 3000,
result => status);
dbms_output.put_line('status : '||status);
END;
/
生成された表ハイパーリンクを使用するには、バインド変数値を渡す必要があります。次の例では、生成されたテーブル ハイパーリンクを使用して、最初の郡のツリー データにアクセスします。
https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/gTlbq...example/data?countyNAME=First
表のハイパーリンクを使用したバインド変数によるデータへのアクセス
次の例では、SELECT
文でバインド変数を使用し、表ハイパーリンクを生成するためにdefault_bind_values
パラメータを含めます。
set serveroutput on
DECLARE
status clob;
BEGIN
DBMS_DATA_ACCESS.CREATE_URL
(
sql_statement = 'SELECT * FROM TREE_DATA WHERE COUNTY = :countyNAME',
default_bind_values => '{"countyNAME" : "First"}',
expiration_minutes => 3000,
result => status);
dbms_output.put_line('status : '||status);
END;
/
この場合、デフォルトのバインド変数値が使用され、値を問合せパラメータとして指定する必要はありません。たとえば:
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data
{"items":[
{"COUNTY":"First","SPECIES":"Pine","HEIGHT":16},
{"COUNTY":"First","SPECIES":"Spruce","HEIGHT":6},
{"COUNTY":"First","SPECIES":"Hawthorn","HEIGHT":19},
{"COUNTY":"First","SPECIES":"Cherry","HEIGHT":20},
{"COUNTY":"First","SPECIES":"Chestnut","HEIGHT":51}],
"hasMore":false,
"limit":100,
"offset":0,
"count":6,
"links":
[
{"rel":"self",
"href":"https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/gTlbq...example/data"}
]}
問合せパラメータとして値を明示的に指定することで、デフォルトのバインド変数値をオーバーライドできます。たとえば:
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data?countyNAME=MAIN
例- グループ化列を含む特定のオブジェクトに対して生成される表ハイパーリンク
次の例では、「グループ化基準」列が指定されている特定の表に対して表ハイパーリンクを生成します。
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.CREATE_URL
(
schema_name => 'ADMIN',
schema_object_name => 'TREE_DATA',
expiration_minutes => 360,
service_name => 'HIGH',
column_lists => {"group_by_columns": ["COUNTY", "SPECIES"]}',
result => status);
dbms_output.put_line(status);
END;
/
例
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.CREATE_URL
(
sqls => '[{"name": "employee", "description": "employee description", "schema_name":"admin", "schema_object_name":"employee"},
{"name":"tree", "description": "tree description", "sql_statement": "select * from admin.tree_data"}]',
expiration_count => 10,
service_name => 'HIGH',
result => status);
dbms_output.put_line(status);
END;
/
親トピック: DBMS_DATA_ACCESSサブプログラムの要約
GET_PREAUTHENTICATED_URLプロシージャ
2つのフォームがあり、1つは特定のオブジェクト(表またはビュー)の表ハイパーリンクを生成するためのフォームです。sql_statement
パラメータを使用してオーバーロードされた形式では、SQL文の表ハイパーリンクが生成されます。
構文
DBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL
(
schema_name IN VARCHAR2,
schema_object_name IN VARCHAR2,
application_user_id IN VARCHAR2,
expiration_minutes IN NUMBER,
expiration_count IN NUMBER,
service_name IN VARCHAR2,
column_lists IN CLOB,
inherit_acl IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
DBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL
(
sql_statement IN CLOB,
application_user_id IN VARCHAR2,
default_bind_values IN CLOB,
expiration_minutes IN NUMBER,
expiration_count IN NUMBER,
service_name IN VARCHAR2,
column_lists IN CLOB,
inherit_acl IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
パラメータ
パラメータ | 説明 |
---|---|
|
オブジェクトのオーナーを指定します。 |
|
スキーマ・オブジェクト(表またはビュー)を指定します。 |
|
|
|
アプリケーション・ユーザーID値を指定します。表ハイパーリンクにアクセスすると、表ハイパーリンクの生成時に指定された sys_context('DATA_ACCESS_CONTEXT$', 'USER_IDENTITY') アプリケーション・コンテキストでこの値を使用するVPDポリシーを定義して、アプリケーション・ユーザーに表示される行を制限できます。 |
|
1つ以上のバインド変数のデフォルト値を指定します(バインド変数で指定された これにより、表のハイパーリンク・コンシューマは、問合せパラメータとしてバインド値を指定せずに、デフォルトのバインド値を使用して表のハイパーリンク・データにアクセスできます。 |
|
表ハイパーリンクの有効期間(分)。 許可される最大有効期限は90日(129600分)です。値が129600より大きい場合、使用される値は129600分(90日)です。
デフォルト値: |
|
表ハイパーリンクで許可されるアクセス数。 デフォルト値はありません。
|
|
表ハイパーリンクの使用時にデータ取得に使用するデータベース・サービス。この表ハイパーリンクのサービスに使用するサービス・レベルの保証とリソースを指定します。たとえば、オブジェクトまたはSQL文へのアクセスはサービスHIGHまたはMEDIUMにマップできますが、別のオブジェクトまたはSQL文へのアクセスはLOWサービスにマップできます。サポートされている値は、 デフォルト値は |
|
列ごとにオプションを指定するJSON値。
形式は次のとおりです。
たとえば:
デフォルトの値
|
|
ACLを継承するには、このパラメータの値を パラメータが指定されていないか、パラメータ値が プロデューサ・データベースにACLが構成されていない場合、 デフォルト値は |
|
操作の結果を示すJSON。 |
使用上のノート
-
このプロシージャの使用は推奨されていません。かわりに、CREATE_URLプロシージャを使用してください。
-
Autonomous Databaseインスタンスでは、アクティブな表ハイパーリンクが128に制限されています。
-
プライベート・エンドポイントを含むAutonomous Databaseインスタンスで表ハイパーリンクを生成すると、結果には
"https://private-endpoint/adb/p/parurl-token/data"
という形式の値を持つprivate_preauth_url
という名前が含まれます。プライベート・エンドポイントを使用してAutonomous Databaseインスタンスに表ハイパーリンクを生成し、プライベート・エンドポイントが「パブリック・アクセスの許可」を有効にして構成されている場合、結果にはパブリック・エンドポイントの
preauth_url
とprivate_preauth_url
の両方が含まれます。詳細は、プライベート・エンドポイントの構成およびパブリック・アクセスを許可したプライベート・エンドポイントの使用を参照してください。
例- 特定のオブジェクトに対して生成された表ハイパーリンク
次の例では、STUDENTS_VIEW
の表ハイパーリンクを生成します。
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL
(
schema_name => 'USER1',
schema_object_name => 'STUDENTS_VIEW',
expiration_minutes => 120,
service_name => 'HIGH',
result => status);
dbms_output.put_line(status);
END;
/
例- SQL文に対して生成された表のハイパーリンク
次の例では、SELECT
SQL文の表ハイパーリンクを生成します。
DECLARE
status CLOB;
par_url_app_string CLOB;
BEGIN
par_url_app_string := 1919292929;
DBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL
(
sql_statement => 'SELECT student_id, student_name FROM STUDENTS_VIEW ORDER BY student_id',
application_user_id => par_url_app_string,
expiration_count => 25,
result => status);
END;
/
例- バインド変数を含むSQL文に対して生成された表のハイパーリンク
次の例では、SELECT
文でバインド変数を使用して表ハイパーリンクを生成します。
set serveroutput on
DECLARE
status clob;
BEGIN
DBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL
(
sql_statement => 'select * from TREE_DATA WHERE COUNTY = :countyNAME',
expiration_minutes => 3000,
result => status);
dbms_output.put_line('status : '||status);
END;
/
生成された表のハイパーリンクを使用するには、バインド変数の値を渡す必要があります。次の例では、生成された表のハイパーリンクを使用して、最初の郡のツリー・データにアクセスします。
https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/gTlbq...example/data?countyNAME=First
表のハイパーリンクを使用したバインド変数によるデータへのアクセス
次の例では、SELECT
文でバインド変数を使用し、表ハイパーリンクを生成するためにdefault_bind_values
パラメータを含めます。
set serveroutput on
DECLARE
status clob;
BEGIN
DBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL
(
sql_statement = 'SELECT * FROM TREE_DATA WHERE COUNTY = :countyNAME',
default_bind_values => '{"countyNAME" : "First"}',
expiration_minutes => 3000,
result => status);
dbms_output.put_line('status : '||status);
END;
/
この場合、デフォルトのバインド変数値が使用され、値を問合せパラメータとして指定する必要はありません。たとえば:
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data
{"items":[
{"COUNTY":"First","SPECIES":"Pine","HEIGHT":16},
{"COUNTY":"First","SPECIES":"Spruce","HEIGHT":6},
{"COUNTY":"First","SPECIES":"Hawthorn","HEIGHT":19},
{"COUNTY":"First","SPECIES":"Cherry","HEIGHT":20},
{"COUNTY":"First","SPECIES":"Chestnut","HEIGHT":51}],
"hasMore":false,
"limit":100,
"offset":0,
"count":6,
"links":
[
{"rel":"self",
"href":"https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/gTlbq...example/data"}
]}
問合せパラメータとして値を明示的に指定することで、デフォルトのバインド変数値をオーバーライドできます。たとえば:
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data?countyNAME=MAIN
詳細は、GET_PREAUTHENTICATED_URLプロシージャを参照してください。
例- 「グループ化基準」列を含む特定のオブジェクトに対して生成された表ハイパーリンク
次の例では、グループ化基準列が指定されている特定の表の表ハイパーリンクを生成します。
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL
(
schema_name => 'ADMIN',
schema_object_name => 'TREE_DATA',
expiration_minutes => 360,
service_name => 'HIGH',
column_lists => {"group_by_columns": ["COUNTY", "SPECIES"]}',
result => status);
dbms_output.put_line(status);
END;
/
親トピック: DBMS_DATA_ACCESSサブプログラムの要約
EXTEND_URLプロシージャ
このプロシージャは、表ハイパーリンクまたは表ハイパーリンク・グループの存続期間を拡張します。
構文
DBMS_DATA_ACCESS.EXTEND_URL(
id IN VARCHAR2,
extend_expiration_minutes_by IN NUMBER,
extend_expiration_count_by IN NUMBER,
result OUT CLOB);
パラメータ
パラメータ | 説明 |
---|---|
|
拡張する表ハイパーリンクまたは表ハイパーリンク・グループのIDを指定します。 |
|
表ハイパーリンクの有効期限を延長する分数。有効期限は、現在の有効期限に
デフォルト値はNULLです。 |
|
表ハイパーリンクのアクセス数は、この数によって拡張されます。有効期限数は、現在の有効期限数に
デフォルト値はNULLです。 |
|
操作の結果を示すJSON。 |
使用上のノート
表ハイパーリンク・グループid
を使用すると、DBMS_DATA_ACCESS.ADD_MEMBER
で追加されたメンバーを除くすべてのメンバー表ハイパーリンクがプロシージャによって拡張されます。DBMS_DATA_ACCESS.ADD_MEMBER
を使用して表ハイパーリンク・グループに追加されたメンバーは、独立した表ハイパーリンク無効化値を保持し、DBMS_DATA_ACCESS.EXTEND_URL
を使用して個別に拡張できます。
例- 表ハイパーリンクの有効期限(分)の拡張
set serveroutput on
declare
status clob;
js_status json_object_t;
js_arr json_array_t;
url_id varchar2(4000);
begin
-- Initially sets the expiration time to 60 minutes
dbms_data_access.get_preauthenticated_url(
schema_name => 'SCOTT', -- Schema name
schema_object_name => 'EMPLOYEE', -- Schema object name
expiration_minutes => 60, -- Expiration minutes
service_name => 'HIGH',
result => status);
js_status := json_object_t.parse(status);
url_id := js_status.get_string('id');
dbms_output.put_line('The url id of url: ' || url_id);
dbms_output.put_line('Initial Expiration Time: ' ||
js_status.get_string('expiration_ts'));
-- Extend the expiration minutes by 1 day, the url would now expire
-- 24 hours later than the previous expiration time
dbms_data_access.extend_url(
id => url_id,
extend_expiration_minutes_by => 1440,
result => status);
-- List urls created
status := dbms_data_access.list_active_urls;
js_arr := json_array_t.parse(status);
for indx in 0.. js_arr.get_size - 1
loop
js_status := TREAT (js_arr.get (indx) AS json_object_t);
if js_status.get_string('id') = url_id then
dbms_output.put_line('New Expiration Time : ' ||
js_status.get_string('expiration_time'));
exit;
end if;
end loop;
end;
/
例- 表ハイパーリンクの有効期限の延長数
set serveroutput on
declare status clob;
js_status json_object_t;
js_arr json_array_t;
url_id varchar2(4000);
begin
-- Initially sets the expiration count to 100
dbms_data_access.get_preauthenticated_url(
schema_name => 'SCOTT', -- Schema name
schema_object_name => 'EMPLOYEE', -- Schema object name
expiration_count => 100, -- Expiration count
service_name => 'HIGH',
result => status);
js_status := json_object_t.parse(status);
url_id := js_status.get_string('id');
dbms_output.put_line('The url id of url: ' || url_id);
dbms_output.put_line('Initial Expiration Count: ' ||
js_status.get_string('expiration_count'));
-- Extends access count by 100 so url would expire after 200 accesses
dbms_data_access.extend_url(
id => url_id,
extend_expiration_count_by => 100,
result => status);
-- List urls created
status := dbms_data_access.list_active_urls;
js_arr := json_array_t.parse(status);
for indx in 0.. js_arr.get_size - 1
loop
js_status := TREAT (js_arr.get (indx) AS json_object_t);
if js_status.get_string('id') = url_id then
dbms_output.put_line('New Expiration Count : ' ||
js_status.get_string('expiration_count'));
exit;
end if;
end loop;
end;
/
親トピック: DBMS_DATA_ACCESSサブプログラムの要約
INVALIDATE_URLプロシージャ
このプロシージャは、表ハイパーリンクまたは表ハイパーリンク・グループを無効にします。
構文
DBMS_DATA_ACCESS.INVALIDATE_URL
(
id IN VARCHAR2,
kill_sessions IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
パラメータ
パラメータ | 説明 |
---|---|
|
無効化する表ハイパーリンクまたは表ハイパーリンク・グループの識別子を指定します。 |
|
このパラメータはオプション。 デフォルトでは、 有効な値: |
|
無効化が成功か失敗かを示すJSONを提供します( |
使用上のノート
DBMS_DATA_ACCESS.INVALIDATE_URL
id
パラメータが表ハイパーリンク・グループの場合、DBMS_DATA_ACCESS.ADD_MEMBER
で追加されたグループ・メンバーを除いて、このプロシージャはグループおよびすべてのグループ・メンバーを無効化します。DBMS_DATA_ACCESS.INVALIDATE_URL
を実行すると、DBMS_DATA_ACCESS.ADD_MEMBER
で追加されたメンバーは独立した表ハイパーリンク無効化値を保持し、DBMS_DATA_ACCESS.INVALIDATE_URL
を使用してこれらの表ハイパーリンクを個別に無効化できます。
例
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.INVALIDATE_URL
(
id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
result => status);
dbms_output.put_line(status);
END;
/
親トピック: DBMS_DATA_ACCESSサブプログラムの要約
LIST_ACTIVE_URLSファンクション
この関数は、現在アクティブなすべての表ハイパーリンクおよび表ハイパーリンク・グループをリストします。
構文
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
RETURN CLOB;
パラメータ
パラメータ | 説明 |
---|---|
RETURN |
戻り値はJSON配列です。 |
例
DECLARE
result CLOB;
BEGIN
result := DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
;
DBMS_OUTPUT.PUT_LINE(result);
END;
[{"id":"pT36lYHFGA4s3UXSNBCRO13v3D4_example1",
"created_by":"SCOTT",
"service_name":"HIGH",
"expiration_time":"2025-07-28T16:38:02.723Z",
"expiration_count":10,
"access_count":0,
"created":"2025-04-29T16:38:02.977Z",
"inherit_acl":true,
"sql_statement":"select * FROM TREE_DATA WHERE COUNTY = :county"}]
使用上のノート
-
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
の動作は、実行者によって異なります。実行者がADMINまたはPDB_DBA
ロールを持つユーザーの場合、ファンクションは、表ハイパーリンクを生成したユーザーに関係なく、すべてのアクティブな表ハイパーリンクをリストします。実行者がADMINユーザーではなく、PDB_DBA
ロールを持つユーザーでない場合、リストには、実行者が生成したアクティブな表ハイパーリンクのみが含まれます。 -
プライベート・エンドポイントを含むAutonomous Databaseインスタンスで表ハイパーリンクを生成してリストすると、結果には
"https://private-endpoint/adb/p/parurl-token/data"
という形式の値を持つprivate_preauth_url
という名前が含まれます。プライベート・エンドポイントを含むAutonomous Databaseインスタンスで表ハイパーリンクを生成してリストし、プライベート・エンドポイントが「パブリック・アクセスの許可」を有効にして構成されている場合、結果にはパブリック・エンドポイントの
preauth_url
とprivate_preauth_url
の両方が含まれます。詳細は、プライベート・エンドポイントの構成およびパブリック・アクセスを許可したプライベート・エンドポイントの使用を参照してください。
-
表ハイパーリンクがグループ・メンバーである場合、
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
レスポンス・エントリには、1つ以上のIDを含むnull以外の値を含むgroup_ids
が表示されます。IDには、表ハイパーリンク(グループ・メンバー)がメンバーである表ハイパーリンク・グループIDが表示されます。
親トピック: DBMS_DATA_ACCESSサブプログラムの要約
LIST_MEMBERSプロシージャ
この手順では、表ハイパーリンク・グループのメンバーをリストします。
構文
DBMS_DATA_ACCESS.LIST_MEMBERS
(
id IN VARCHAR2,
result OUT CLOB);
パラメータ
パラメータ | 説明 |
---|---|
|
表ハイパーリンク・グループの識別子を指定します。 |
|
無効化が成功か失敗かを示すJSONを提供します( |
例
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.LIST_MEMBERS
(
id => 'aGnHVyZ4vBo4_Fq2R0A2G2-y6TdUKRHeveqyGJ3_example',
result => status);
dbms_output.put_line(status);
END;
/
親トピック: DBMS_DATA_ACCESSサブプログラムの要約
REMOVE_MEMBERプロシージャ
このプロシージャは、表ハイパーリンク・グループからメンバーを削除します。
構文
DBMS_DATA_ACCESS.REMOVE_MEMBER
(
id IN VARCHAR2,
member_id IN BOOLEAN DEFAULT FALSE,
result OUT CLOB);
パラメータ
パラメータ | 説明 |
---|---|
|
表ハイパーリンク・グループの識別子を指定します。 |
member_id |
表ハイパーリンク・グループから削除するグループ・メンバーの識別子を指定します。 |
|
無効化が成功か失敗かを示すJSONを提供します( |
使用上のノート
member_id
値は表ハイパーリンク・グループIDにできません(is_group_url
はfalse
である必要があります)。-
削除されたメンバーが、
DBMS_DATA_ACCESS.ADD_MEMBER
を使用してグループに追加された既存の表ハイパーリンクである場合、そのメンバーはグループから削除されますが、表ハイパーリンクは明示的に無効化されるか期限切れになるまで直接アクセスできます。 -
表ハイパーリンク・グループに1つのメンバーのみが含まれ、そのメンバーが削除された場合、グループは無効化されます。
例
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.REMOVE_MEMBER
(
id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
member_id => 'Zdd1Px7QWASdqDbnndiuwTAyyEstv82PCHlS_example',
result => status);
dbms_output.put_line(status);
END;
/
親トピック: DBMS_DATA_ACCESSサブプログラムの要約