DBMS_CLOUD_LINKパッケージ

DBMS_CLOUD_LINKパッケージを使用すると、ユーザーは表またはビューをクラウド・リンクへの読取り専用アクセス用のデータ・セットとして登録できます。

DBMS_CLOUD_LINK概要

DBMS_CLOUD_LINKパッケージの使用について説明します。

DBMS_CLOUD_LINKパッケージには、表またはビューをクラウド・リンクで使用するデータ・セットとして登録できるREGISTERプロシージャが用意されています。データ・セットを登録する前に、ADMINユーザーは、DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTERプロシージャを使用してデータ・セットを登録する権限をユーザーに付与する必要があります。ADMINがGRANT_REGISTERを実行した後、ユーザーは、所有する表またはビューを登録済のデータ・セットとして登録できます(または、ユーザーがオブジェクトに対するREAD WITH GRANT OPTION権限を持っている場合は、オブジェクトを別のスキーマに登録します)。登録済データ・セットは、REGISTERプロシージャで指定されたスコープに従って、クラウド・リンクを使用して登録済オブジェクトへのリモート・アクセスを提供します。

DBMS_CLOUD_LINK.REGISTERDBMS_CLOUD_LINK.UPDATE_REGISTRATIONまたはDBMS_CLOUD_LINK.UNREGISTERを実行するには、以前にDBMS_CLOUD_LINK_ADMIN.GRANT_REGISTERを実行したことに加えて、DBMS_CLOUD_LINKパッケージに対する実行権限が必要です。デフォルトでは、ADMINユーザーおよびPDB_DBAロールを持つスキーマのみが、DBMS_CLOUD_LINKに対する実行権限を持ちます。

DBMS_CLOUD_LINKサブプログラムの要約

DBMS_CLOUD_LINKパッケージに含まれるサブプログラムのサマリーを含む表を示します。

サブプログラム 摘要

DESCRIBEファンクション

この関数は、データ・セットの摘要を取得します。この説明は、データ・セットがDBMS_CLOUD_LINK.REGISTERに登録されている場合に提供されます。

FINDプロシージャ

検索文字列に一致するデータ・セットのネームスペース、名前および説明を取得します。一致するデータ・セットは、アクセス制限に基づいてユーザーがアクセスできる場合にのみ表示されます。

GET_DATABASE_IDファンクション

Autonomous Databaseインスタンスの一意の識別子を返します。同じインスタンスでDBMS_CLOUD_LINK.GET_DATABASE_IDを繰り返しコールすると、常に同じ値が返されます。

GRANT_AUTHORIZATIONプロシージャ

指定されたデータ・セットにアクセスするための認可を指定されたデータベースに付与します。

REGISTERプロシージャ

表またはビューをデータ・セットとして登録します。

REVOKE_AUTHORIZATIONプロシージャ

指定されたデータ・セットにアクセスするための、指定されたデータベースの認可を取り消します。

UNREGISTERプロシージャ

登録済みのデータセットを削除します。

UPDATE_REGISTRATIONプロシージャ

DBMS_CLOUD_LINK.REGISTERを使用して登録されたデータ・セットの属性を更新します。

DESCRIBEファンクション

この関数は、データ・セットの摘要を取得します。この説明は、データ・セットがDBMS_CLOUD_LINK.REGISTERに登録されている場合に提供されます。

構文

DBMS_CLOUD_LINK.DESCRIBE(
      namespace        IN   VARCHAR2,
      name             IN   VARCHAR2
) return CLOB;

パラメータ

パラメータ 摘要

namespace

登録済データ・セットのネームスペースを指定します。

name

登録済データ・セットの名前を指定します。

使用上のノート

この関数は、DBMS_CLOUD_LINK.REGISTERを使用して登録時に課されるアクセス制限に従うことができます。データベースからデータ・セットにアクセスできない場合、その説明は取得されません。

FINDプロシージャ

このプロシージャは、検索文字列に一致するデータ・セットのネームスペース、名前および説明を取得します。一致するデータ・セットは、アクセス制限に基づいてユーザーがアクセスできる場合にのみ表示されます。

構文

DBMS_CLOUD_LINK.FIND(
      search_string        IN   VARCHAR2,
      search_result        OUT   CLOB
);

パラメータ

パラメータ 摘要

search_string

検索文字列を指定します。検索文字列は大文字と小文字が区別されません。

search_result

データ・セットのネームスペース、名前および説明の値を含むJSONドキュメント。

使用上のノート

検索文字列では大文字と小文字が区別されず、パッケージではOracle Textを使用したフリー・テキスト検索を利用します。

GET_DATABASE_IDファンクション

このファンクションは、Autonomous Databaseインスタンスの一意の識別子を返します。同じインスタンスでDBMS_CLOUD_LINK.GET_DATABASE_IDを繰り返しコールすると、常に同じ値が返されます。

このファンクションは、登録済データ・セットにリモートでアクセスしているデータベースでコールして、データベースIDを取得できます。これにより、データ・セットの所有者が、リモート・サイトの指定したデータベースIDに基づいて、VPDなどのより詳細なデータ・アクセス制御を利用できるように、データベースiDを提供できます。

データベースIDは、登録済データ・セットにアクセスする各リモート・データベースを識別し、登録済データ・セットを所有するデータベース上のV$CLOUD_LINK_ACCESS_STATSビューおよびGV$CLOUD_LINK_ACCESS_STATSビューでアクセスを追跡および監査します。

構文

DBMS_CLOUD_LINK.GET_DATABASE_ID()
  RETURN VARCHAR2;

使用上のノート

クラウド・リンクでは、DBMS_CLOUD_LINK.GET_DATABASE_IDが戻す一意の識別子を使用して、データ・セットにリモートでアクセスしている個々のデータベースを識別します。登録済データ・セットを所有するデータベースは、V$CLOUD_LINK_ACCESS_STATSビューおよびGV$CLOUD_LINK_ACCESS_STATSビューのデータ・セット・アクセスのオリジン・レコードとしてデータベースIDを追跡および監査します。

DBMS_CLOUD_LINK.GET_DATABASE_ID識別子はSYS_CONTEXT値として使用できるため、SYS_CONTEXTを使用して接続するリモート・セッションに関するこの情報をプログラムで取得し、仮想プライベート・データベース(VPD)を使用する個々のAutonomous Databaseインスタンスによってリモートでアクセスできる特定のデータをさらに制限および制御できます。

戻り値

VARCHAR2のAutonomous Databaseインスタンスの一意の識別子。

GRANT_AUTHORIZATIONプロシージャ

このプロシージャは、指定されたデータ・セットにアクセスするための認可を指定されたデータベースに付与します。

構文

DBMS_CLOUD_LINK.GRANT_AUTHORIZATION(
      database_id        IN   VARCHAR2,
      namespace          IN   VARCHAR2 DEFAULT,
      name               IN   VARCHAR2
);

パラメータ

パラメータ 摘要

database_id

Autonomous DatabaseインスタンスのデータベースIDを指定します。DBMS_CLOUD_LINK.GET_DATABASE_IDを使用して、データベースIDを取得します。

namespace

指定されたdatabase_idに対するアクセス認可を付与するデータ・セット・ネームスペースを指定します。

name

指定されたdatabase_idに対するアクセス認可を付与するデータセット名を指定します。

REGISTERプロシージャ

このプロシージャは、表またはビューをデータ・セットとして登録し、scopeパラメータによって課される制限に従って、リモートの読取り専用アクセスを許可します。

構文

DBMS_CLOUD_LINK.REGISTER(
     schema_name      IN VARCHAR2,
     schema_object    IN VARCHAR2,
     namespace        IN VARCHAR2,
     name             IN VARCHAR2,
     description      IN CLOB,
     scope            IN CLOB,
     auth_required    IN BOOLEAN DEFAULT,
     data_set_owner   IN VARCHAR2 DEFAULT,
     offload_targets  IN CLOB DEFAULT

);

パラメータ

パラメータ 摘要

schema_name

schema_objectパラメータで指定された表またはビューの所有者を指定します。

schema_object

表またはビュー名を指定します。有効なオブジェクトは次のとおりです。

  • 表(ヒープ、外部またはハイブリッドを含む)
  • ビュー
  • マテリアライズド・ビュー
  • クラウド表

分析ビューやシノニムなどの他のオブジェクトはサポートされていません。

namespace

データ・セットのネームスペースを指定します。

NULL値は、Autonomous Databaseインスタンスに固有の、システム生成のnamespace値を指定します。

name

データ・セット名を指定します。

description

データを説明するテキストを指定します。

scope

データ・セットへのアクセスを許可するユーザーを示します。値は、次の1つ以上含むコンマ区切りのリストです。

  • データベースOCID: データ・セットへのアクセスは、OCIDによって識別される特定のAutonomous Databaseインスタンスに対して許可されます。

  • コンパートメントOCID: データ・セットへのアクセスは、コンパートメントOCIDによって識別されるコンパートメント内のデータベースに対して許可されます。

  • テナンシOCID: データ・セットへのアクセスは、テナンシOCIDによって識別されるテナンシ内のデータベースに対して許可されます。

  • リージョン名: データ・セットへのアクセスは、指定されたリージョンで識別されるリージョン内のデータベースに対して許可されます。スコープによって、クラウド・リンクへのアクセスは単一のリージョン内に制限され、リージョン間ではありません。別のリージョンのコンシューマは、データ・セット所有者であるデータベースのクロスリージョン・リフレッシュ可能クローンがコンシューマ・データベースのリージョンに存在する場合にのみ、データ・セットにアクセスできます。

    詳細は、「別のリージョンでのデータ・セットの登録または登録解除」を参照してください。

  • MY$COMPARTMENT: データ・セットへのアクセスは、データ・セット所有者と同じコンパートメント内のデータベースに対して許可されます。

  • MY$TENANCY: データ・セットへのアクセスは、データ・セット所有者と同じテナンシ内のデータベースに対して許可されます。

  • MY$REGION: データ・セットへのアクセスは、データ・セット所有者と同じリージョン内のデータベースに対して許可されます。

  • リージョンのリスト: データ・セットへのアクセスは、指定したリージョンのデータベースに対して許可されます。

    たとえば:

    scope   =>  'us-phoenix-1,us-ashburn-1',

    別のリージョンのコンシューマは、データ・セット所有者であるデータベースのクロスリージョン・リフレッシュ可能クローンがコンシューマ・データベースのリージョンに存在する場合にのみ、データ・セットにアクセスできます。

スコープ値MY$REGIONMY$TENANCYおよびMY$COMPARTMENTは、利便性マクロとして機能し、OCIDsに解決される変数です。

auth_required

データベースがデータ・セットから読み取るために追加の認可が必要であることを指定します。次のケースが考えられます。

  • 指定されたSCOPE内にあり、DBMS_CLOUD_LINK.GRANT_AUTHORIZATIONで認可されているデータベースは、データ・セットの行を表示できます。

  • 指定されたSCOPE内にあるが、DBMS_CLOUD_LINK.GRANT_AUTHORIZATIONで認可されていないデータベースは、データ・セット行を表示できません。この場合、認可のないコンシューマは、データセットを空とみなします。

  • 指定されたSCOPE内にないデータベースでは、データ・セットにアクセスしようとするとエラーが表示されます。

data_set_owner

データ・セットの所有者を指定します。これは、データ・セットが属するユーザー、またはデータ・セットの更新と保守を担当するユーザーを示します。たとえば、データ・セットを登録したユーザーの電子メール・アドレスにdata_set_ownerを設定できます。

offload_targets

データ・セットが登録されているAutonomous Databaseから、データ・セットへのアクセスがオフロードされるリフレッシュ可能クローンのAutonomous Database OCIDsを1つ以上指定します。

offload_targets値は、1つ以上のCLOUD_LINK_DATABASE_IDおよびOFFLOAD_TARGETキー値のペアを定義するJSONドキュメントです。

  • CLOUD_LINK_DATABASE_IDは、次のいずれかです。

    • データベースID: これは、OFFLOAD_TARGET値で指定された対応するリフレッシュ可能クローンにリクエストがオフロードされるデータ・セット・コンシューマのデータベースIDを指定します。

      DBMS_CLOUD_LINK.GET_DATABASE_IDを実行してデータベースIDを取得します。詳細は、GET_DATABASE_IDファンクションを参照してください。

    • ANY: これは、データ・セット・コンシューマのリクエストが対応するオフロード・ターゲットにオフロードされることを指定します。コンシューマのデータ・セット・リクエストは、対応するオフロード・ターゲットにルーティングされます。

      データベースIDを指定せずにANYを指定すると、コンシューマからのすべてのデータ・セット・リクエストは、OFFLOAD_TARGET値で指定されたリフレッシュ可能クローンにオフロードされます。

      データベースIDとANYの両方を指定すると、データベースIDと一致しないコンシューマからのデータ・セット・リクエストは、OFFLOAD_TARGET値で指定されたリフレッシュ可能クローンにオフロードされます。

  • OFFLOAD_TARGETは、リフレッシュ可能なクローンであるAutonomous DatabaseインスタンスのOCIDです。

たとえば、3つのOFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID値ペアを持つJSONサンプルを次に示します。

{
  "OFFLOAD_TARGETS": [
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx69708978",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfabc"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx89898978",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdef"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx4755680",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfghi"
    }
  ]
}

データ・セット・コンシューマが、ANYキーワードを使用してoffload_targetsに登録したデータ・セットへのアクセスをリクエストすると、アクセスのリクエストは、指定されたJSONのOFFLOAD_TARGETで識別されるリフレッシュ可能クローン(指定されたJSONに明示的なエントリがあるリクエストを除く)にオフロードされます。

たとえば、1つの明示的なOFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID値ペアと1つのANYエントリを持つJSONサンプルを次に示します。

{
  "OFFLOAD_TARGETS": [
    {
      "CLOUD_LINK_DATABASE_ID": "ANY",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdef"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx4755680",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfghi"
    }
  ]
}

DBMS_CLOUD_LINK.REGISTERは、OFFLOAD_TARGET値として指定されたOCIDが同じリージョン内のリフレッシュ可能クローンのOCIDではない場合にエラーを報告します。

リフレッシュ可能クローンの使用の詳細は、Autonomous Databaseでのリフレッシュ可能クローンの使用を参照してください。

使用上のノート

  • オブジェクトを登録した後、ユーザーはクラウド・リンクを使用してオブジェクトにアクセスするために最大10分待機する必要がある場合があります。

  • プロシージャDBMS_CLOUD_LINK.UPDATE_REGISTRATIONを使用して、既存のデータ・セットの属性を変更します。

    更新が完了するまでの待機時間は、登録の変更が伝播され、クラウド・リンクを介してアクセス可能になるまで最大10分です。この遅延は、DBA_CLOUD_LINK_REGISTRATIONSビューとDBA_CLOUD_LINK_ACCESSビューの両方のデータの精度に影響を与える可能性があります。

  • 表またはビューに対するREAD WITH GRANT OPTION権限がある場合は、別のユーザーのスキーマに存在する表またはビューを登録できます。

  • データ・セットの登録時に設定したスコープは、DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTERで設定した値セットと一致するか、制限が大きい場合にのみ適用されます。たとえば、ADMINがGRANT_REGISTERでスコープ'MY$TENANCY'を付与し、ユーザーがDBMS_CLOUD_LINK.REGISTERでデータ・セットを登録するときに'MY$REGION'を指定したとします。この場合、次のようなエラーが表示されます。

    ORA-20001: Share privileges are not enabled for current user or it is enabled but not for scope MY$REGION
  • 登録時に階層的な妥当性チェックを実行することはできません。無効な登録は、誰でも表示、検出、またはアクセスできなくなります。

  • DBMS_CLOUD_LINK.REGISTERを使用するには、DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTERで割り当てられたレジスタ権限に加えて、DBMS_CLOUD_LINKパッケージに対する実行権限が必要です。デフォルトでは、ADMINユーザーおよびPDB_DBAを持つスキーマのみがこの権限を持ちます。

  • リモート・リージョンのリフレッシュ可能クローンにデータ・セットを登録する場合、リモート・リージョン・クローンでのDBMS_CLOUD_LINK.REGISTERの起動では、offload_targetsパラメータを除いて、ソース・データベースと同じ値を持つ同じパラメータを使用する必要があります。

    たとえば、ソースAutonomous DatabaseインスタンスでスコープがMY$COMPARTMENTに設定されたDBMS_CLOUD_LINK.REGISTERを実行する場合、同じスコープ・パラメータ値(MY$COMPARTMENT)を持つクロスリージョン・リフレッシュ可能クローンでプロシージャを再度実行します。

  • ソースでDBMS_CLOUD_LINK.REGISTERoffload_targetsパラメータを指定する場合は、リージョン間リフレッシュ可能クローンにデータ・セットを登録するときに、このパラメータを省略する必要があります。

REVOKE_AUTHORIZATIONプロシージャ

このプロシージャは、指定したデータベースに対する認可を取り消して、指定したデータ・セットにアクセスします。

構文

DBMS_CLOUD_LINK.REVOKE_AUTHORIZATION(
      database_id        IN   VARCHAR2,
      namespace          IN   VARCHAR2 DEFAULT,
      name               IN   VARCHAR2
);

パラメータ

パラメータ 摘要

database_id

Autonomous DatabaseインスタンスのデータベースIDを指定します。DBMS_CLOUD_LINK.GET_DATABASE_IDを使用して、データベースIDを取得します。

namespace

指定されたdatabase_idのアクセス認可を取り消すデータ・セット・ネームスペースを指定します。

name

指定されたdatabase_idのアクセス認可を取り消すデータ・セット名を指定します。

UNREGISTERプロシージャ

このプロシージャを使用すると、REGISTERプロシージャを使用して表またはビューを以前に登録したユーザーは、表またはビューを登録解除して、リモート・アクセスに使用できなくなります。

構文

DBMS_CLOUD_LINK.UNREGISTER(
      namespace        IN   VARCHAR2,
      name             IN   VARCHAR2
);

パラメータ

パラメータ 摘要

namespace

ユーザー名を指定します。

name

データ・セット名を指定します。

使用上のノート

DBMS_CLOUD_LINK.UNREGISTERは、完全伝播に最大10分かかる場合もあります。その後、データにリモートからアクセスしやすくなります。

UPDATE_REGISTRATIONプロシージャ

このプロシージャは、DBMS_CLOUD_LINK.REGISTERを使用して登録されたデータ・セットの1つ以上の属性を更新します。

構文

DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
     namespace        IN VARCHAR2,
     name             IN VARCHAR2,
     description      IN CLOB      DEFAULT,
     scope            IN CLOB      DEFAULT,
     auth_required    IN BOOLEAN   DEFAULT,
     data_set_owner   IN VARCHAR2  DEFAULT,
     offload_targets  IN CLOB      DEFAULT

);

パラメータ

パラメータ 摘要
namespace

更新するデータセットのネームスペースを指定します。

name

更新するデータ・セットの名前を指定します。

description

データを説明するために更新されたテキストを指定します。

このパラメータ値に対してNULLが渡された場合、属性は変更されません。

デフォルトでは、この属性は更新されません。

scope

指定された値でスコープを更新します。スコープは、データ・セットへのアクセスを許可するユーザーを示します。値は、次の1つ以上含むコンマ区切りのリストです。

  • データベースOCID: データ・セットへのアクセスは、OCIDによって識別される特定のAutonomous Databaseインスタンスに対して許可されます。

  • コンパートメントOCID: データ・セットへのアクセスは、コンパートメントOCIDによって識別されるコンパートメント内のデータベースに対して許可されます。

  • テナンシOCID: データ・セットへのアクセスは、テナンシOCIDによって識別されるテナンシ内のデータベースに対して許可されます。

  • リージョン名: データ・セットへのアクセスは、指定されたリージョンで識別されるリージョン内のデータベースに対して許可されます。スコープによって、クラウド・リンクへのアクセスは単一のリージョン内に制限され、リージョン間ではありません。別のリージョンのコンシューマは、データ・セット所有者であるデータベースのクロスリージョン・リフレッシュ可能クローンがコンシューマ・データベースのリージョンに存在する場合にのみ、データ・セットにアクセスできます。

    詳細は、「別のリージョンでのデータ・セットの登録または登録解除」を参照してください。

  • MY$COMPARTMENT: データ・セットへのアクセスは、データ・セット所有者と同じコンパートメント内のデータベースに対して許可されます。

  • MY$TENANCY: データ・セットへのアクセスは、データ・セット所有者と同じテナンシ内のデータベースに対して許可されます。

  • MY$REGION: データ・セットへのアクセスは、データ・セット所有者と同じリージョン内のデータベースに対して許可されます。

  • リージョンのリスト: データ・セットへのアクセスは、指定したリージョンのデータベースに対して許可されます。

    たとえば:

    scope   =>  'us-phoenix-1,us-ashburn-1',

    別のリージョンのコンシューマは、データ・セット所有者であるデータベースのクロスリージョン・リフレッシュ可能クローンがコンシューマ・データベースのリージョンに存在する場合にのみ、データ・セットにアクセスできます。

スコープ値MY$REGIONMY$TENANCYおよびMY$COMPARTMENTは、利便性マクロとして機能し、OCIDsに解決される変数です。

このパラメータ値に対してNULLが渡された場合、属性は変更されません。

デフォルトでは、この属性は更新されません。

auth_required

データベースがデータ・セットから読み取るために追加の認可が必要であることを指定します。次のケースが考えられます。

  • 指定されたSCOPE内にあり、DBMS_CLOUD_LINK.GRANT_AUTHORIZATIONで認可されているデータベースは、データ・セットの行を表示できます。

  • 指定されたSCOPE内にあるが、DBMS_CLOUD_LINK.GRANT_AUTHORIZATIONで認可されていないデータベースは、データ・セット行を表示できません。この場合、認可のないコンシューマは、データセットを空とみなします。

  • 指定されたSCOPE内にないデータベースでは、データ・セットにアクセスしようとするとエラーが表示されます。

このパラメータ値に対してNULLが渡された場合、属性は変更されません。

デフォルトでは、この属性は更新されません。

data_set_owner

データ・セットの所有者を指定します。これは、データ・セットが属するユーザー、またはデータ・セットの更新と保守を担当するユーザーを示します。たとえば、データ・セットを登録したユーザーの電子メール・アドレスにdata_set_ownerを設定できます。

このパラメータ値に対してNULLが渡された場合、属性は変更されません。

デフォルトでは、この属性は更新されません。

offload_targets

データ・セットが登録されているAutonomous Databaseから、データ・セットへのアクセスがオフロードされるリフレッシュ可能クローンのAutonomous Database OCIDsを1つ以上指定します。

offload_targets値は、1つ以上のCLOUD_LINK_DATABASE_IDおよびOFFLOAD_TARGETキー値のペアを定義するJSONドキュメントです。

  • CLOUD_LINK_DATABASE_IDは、次のいずれかです。

    • データベースID: これは、OFFLOAD_TARGET値で指定された対応するリフレッシュ可能クローンにリクエストがオフロードされるデータ・セット・コンシューマのデータベースIDを指定します。

      DBMS_CLOUD_LINK.GET_DATABASE_IDを実行してデータベースIDを取得します。詳細は、GET_DATABASE_IDファンクションを参照してください。

    • ANY: これは、データ・セット・コンシューマのリクエストが対応するオフロード・ターゲットにオフロードされることを指定します。コンシューマのデータ・セット・リクエストは、対応するオフロード・ターゲットにルーティングされます。

      データベースIDを指定せずにANYを指定すると、コンシューマからのすべてのデータ・セット・リクエストは、OFFLOAD_TARGET値で指定されたリフレッシュ可能クローンにオフロードされます。

      データベースIDとANYの両方を指定すると、データベースIDと一致しないコンシューマからのデータ・セット・リクエストは、OFFLOAD_TARGET値で指定されたリフレッシュ可能クローンにオフロードされます。

  • OFFLOAD_TARGETは、リフレッシュ可能なクローンであるAutonomous DatabaseインスタンスのOCIDです。

たとえば、3つのOFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID値ペアを持つJSONサンプルを次に示します。

{
  "OFFLOAD_TARGETS": [
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx69708978",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfabc"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx89898978",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdef"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx4755680",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfghi"
    }
  ]
}

データ・セット・コンシューマが、ANYキーワードを使用してoffload_targetsに登録したデータ・セットへのアクセスをリクエストすると、アクセスのリクエストは、指定されたJSONのOFFLOAD_TARGETで識別されるリフレッシュ可能クローン(指定されたJSONに明示的なエントリがあるリクエストを除く)にオフロードされます。

たとえば、1つの明示的なOFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID値ペアと1つのANYエントリを持つJSONサンプルを次に示します。

{
  "OFFLOAD_TARGETS": [
    {
      "CLOUD_LINK_DATABASE_ID": "ANY",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdef"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx4755680",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfghi"
    }
  ]
}

DBMS_CLOUD_LINK.REGISTERは、OFFLOAD_TARGET値として指定されたOCIDが同じリージョン内のリフレッシュ可能クローンのOCIDではない場合にエラーを報告します。

リフレッシュ可能クローンの使用の詳細は、Autonomous Databaseでのリフレッシュ可能クローンの使用を参照してください。

このパラメータ値に対してNULLが渡された場合、属性は変更されません。

デフォルトでは、この属性は更新されません。

使用上のノート

  • データ・セットのschema_name属性およびschema_object属性は更新できません。

  • オブジェクトの登録を更新した後、ユーザーは、クラウド・リンクで更新された属性を使用してオブジェクトにアクセスするために最大10分待機する必要がある場合があります。

  • 表またはビューに対するREAD WITH GRANT OPTION権限がある場合は、別のユーザーのスキーマに存在する表またはビューの登録を更新できます。

  • データ・セットの登録の更新時に設定するスコープは、DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTERで設定した値セットと一致するか、制限が大きい場合にのみ適用されます。たとえば、ADMINがGRANT_REGISTERでスコープ'MY$TENANCY'を付与し、ユーザーがDBMS_CLOUD_LINK.UPDATE_REGISTRATIONでデータ・セットの登録を更新するときに'MY$REGION'を指定したとします。この場合、次のようなエラーが表示されます。

    ORA-20001: Share privileges are not enabled for current user or it is enabled but not for scope MY$REGION
  • 登録の更新時に、更新された登録に対する階層的な妥当性チェックは実行できません。無効な登録は、誰でも表示、検出、またはアクセスできなくなります。

  • データ・セットを登録したユーザーは、その属性をDBMS_CLOUD_LINK.UPDATE_REGISTRATIONで更新できます。また、DBMS_CLOUD_LINKパッケージに対する実行権限と、DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTERに割り当てられたレジスタ権限が必要です。デフォルトでは、ADMINユーザーおよびPDB_DBAを持つスキーマのみがこの権限を持ちます。

  • リモート・リージョンのリフレッシュ可能クローンでデータ・セットの登録を更新する場合、リモート・リージョン・クローンでのDBMS_CLOUD_LINK.UPDATE_REGISTRATIONの起動では、offload_targetsパラメータを除いて、ソース・データベースと同じ値を持つ同じパラメータを使用する必要があります。

    たとえば、ソースAutonomous DatabaseインスタンスでスコープがMY$COMPARTMENTに設定されたDBMS_CLOUD_LINK.UPDATE_REGISTRATIONを実行する場合、同じスコープ・パラメータ値(MY$COMPARTMENT)を持つクロスリージョン・リフレッシュ可能クローンでプロシージャを再度実行します。

  • ソースのDBMS_CLOUD_LINK.REGISTERoffload_targetsパラメータを指定する場合は、リージョン間リフレッシュ可能クローンにデータ・セットを登録するときに、このパラメータを省略する必要があります。