Set up live data sharing between Oracle Databases using Cloud Links and PL/SQL APIs
https://apexapps.oracle.com/pls/apex/r/dbpm/livelabs/view-workshop?wid=3881
最初にProvider側の変更を行います。
ページ番号7のShare RecipientにRecipient Sharing IDの扱いを追加します。
ソースのSQL問合せに列RECIPIENT_SHARING_IDを追加します。
select
recipient_id,
recipient_name,
recipient_sharing_id,
'' email,
'' recipient_property,
'' new_value
from user_share_recipients
追加されたページ・アイテムP7_RECIPIENT_SHARING_IDのタイプをテキスト・フィールドに変更します。
begin
if :P7_RECIPIENT_SHARING_ID is null then
/* for VERSIONED - Delta Sharing */
dbms_share.create_or_replace_share_recipient(
recipient_name => :P7_RECIPIENT_NAME
,email => :P7_EMAIL
);
else
/* for LIVE - Cloud Link */
dbms_share.create_or_replace_share_recipient(
recipient_name => :P7_RECIPIENT_NAME
,sharing_id => :P7_RECIPIENT_SHARING_ID
);
end if;
end;
SELECT dbms_share.get_sharing_id FROM dual;
LiveLabsのLab 4, Task 1のdbms_share.create_share_recipientを呼び出すコードの引数sharing_idの値に「Enter your share provider user sharing id here」と記載されていますが、providerではなくconsumerではないかと思います。
Provider側の変更は以上です。
Consumer側の変更を行います。最初に確認作業を実施します。
SQLコマンドで以下のSQLを実行し、APEXのワークスペースでCloud Linkによるデータ共有が許可されていることを確認します。
SELECT SYS_CONTEXT('USERENV','CLOUD_LINK_READ_ENABLED') FROM dual;
YESが返されれば許可されています。
Consumer側の設定は異なる点が多いため、新しくページを作成して実装します。
空白のページを作成します。ページ番号は12、名前はLive Consumerとします。
作成されたLive Consumerのページに、利用可能なAvailable Oracle Share Providerを一覧する対話モード・レポートを作成します。ソースのSQL問合せは以下になります。
select * from all_available_oracle_share_providers
Oracle Share Providerを作成するフォームのページは、ページ番号が13、データ・ソースのSQLには以下を記述します。
select
oracle_provider_id,
'' provider_name
from all_available_oracle_share_providers
主キー列1にはORACLE_PROVIDER_IDを選択します。
フォームのページOracle Share Providerが作成されます。
ページ・アイテムP13_PROVIDER_NAMEを選択します。外観のテンプレートをRequired - Floating、検証の必須の値をオンにします。
Oracle Share Providerを作成するプロセスを作成します。デフォルトで作成されているプロセスプロセス・フォームOracle Share Providerはコメント・アウトします。
プロセスCreateでは、以下のコードを実行します。ボタンSAVEの押下で実行します。
begin
dbms_share.create_oracle_share_provider(
oracle_provider_id => :P13_ORACLE_PROVIDER_ID
,provider_name => :P13_PROVIDER_NAME
);
end;
以上でフォームについては完成です。
Live Consumerのページに戻ります。
対話モード・レポートAvailable Oracle Share Providersの属性のリンク列をカスタム・ターゲットへのリンクとし、ターゲットはページ13、主キーのアイテムの名前としてP13_ORACLE_PROVIDER_ID、値となる列に\#ORACLE_PROVIDER_ID#\を指定します。
以上で出来上がりです。
アプリケーションを実行し、対話モード・レポートAvailable Oracle Share Providersから共有する対象となるOracle Share Providersを開きます。
Provider NameにDEMO_LIVE_PROVIDERを入力し、変更の適用をクリックします。
Consumerのページを開きます。
Share Providersに作成したOracle Share ProviderのDEMO_LIVE_PROVIDERが表示されていることが確認できます。
最終的にShare Link ViewとしてCUSTSALES_SHARE_Vを作成します。
SQLコマンドより作成したビューCUSTSALES_SHARE_Vを検索してみます。
select * from custsales_share_v;
ビューCUSTSALES_SHARE_Vは、Cloud Linkを参照していることがわかります。
Share TypeがLIVEの際の対応については以上になります。
完