DBMS_CLOUD_NOTIFICATIONパッケージ
DBMS_CLOUD_NOTIFICATION
パッケージを使用すると、メッセージまたはSQL問合せの出力をプロバイダに送信できます。
- DBMS_CLOUD_NOTIFICATIONの概要
DBMS_CLOUD_NOTIFICATION
パッケージについて説明します。 - DBMS_CLOUD_NOTIFICATIONサブプログラムの概要
この表は、パッケージに含まれるサブプログラムの概要を示しています。
DBMS_CLOUD_NOTIFICATION概要
DBMS_CLOUD_NOTIFICATION
パッケージについて説明します。
DBMS_CLOUD_NOTIFICATION
でサポートされるプロバイダは、Eメール、Microsoft Teams、OCI通知(ONS)およびSlackです。
OCI通知サービスをDBMS_CLOUD_NOTIFICATION
パッケージとともに使用する場合、DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE
プロシージャのみがサポートされます(DBMS_CLOUD_NOTIFICATION.SEND_DATA
プロシージャはサポートされていません)。
DBMS_CLOUD_NOTIFICATIONサブプログラムの概要
この表は、パッケージに含まれるサブプログラムの概要を示しています。
サブプログラム | 説明 |
---|---|
SQL問合せ出力をプロバイダに送信します。 |
|
プロバイダにテキスト・メッセージを送信します。 |
- SEND_DATAプロシージャ
SEND_DATA
プロシージャは、指定された問合せの結果をプロバイダに送信します。 - SEND_MESSAGEプロシージャ
プロシージャは、プロバイダにテキスト・メッセージを送信します。
SEND_DATAプロシージャ
SEND_DATA
プロシージャは、指定された問合せの結果をプロバイダに送信します。
構文
DBMS_CLOUD_NOTIFICATION.SEND_DATA
(
provider IN VARCHAR2,
credential_name IN VARCHAR2,
query IN CLOB,
params IN CLOB
);
パラメータ
パラメータ | 説明 |
---|---|
|
プロバイダを指定します。 有効な値は、' このパラメータは必須です。 |
|
プロバイダにアクセスする資格証明オブジェクトの名前。 電子メール・プロバイダの場合、資格証明は、そのユーザー名とパスワードを含むSMTP承認送信者の資格証明の名前です。 msteamsプロバイダの場合、資格証明は資格証明の名前です。 Slackプロバイダの場合、資格証明のユーザー名は このパラメータは必須です。 |
|
実行するSQL問合せを指定します。結果はプロバイダに送信されます。 このパラメータは必須です。 |
|
プロバイダ・タイプ
プロバイダ・タイプ
プロバイダ・タイプ
このパラメータは必須です。 |
使用上のノート
-
資格証明オブジェクトを作成するには、プロシージャ
DBMS_CLOUD.CREATE_CREDENTIAL
(credential_name
、username
、password)
を使用します。詳細は、CREATE_CREDENTIALプロシージャを参照してください。
-
email
プロバイダの場合、次の点に注意してください。-
ユーザーは、電子メール配信サーバーのSMTP接続エンドポイントで
smtp_host
を取得する必要があります。また、ユーザーは、credential_name
を取得するために、電子メール配信サーバーとの認証にSMTP承認済送信者とその資格証明が必要です。SMTP接続を構成し、SMTP資格証明を生成して承認する必要があります。 -
email
プロバイダでDBMS_CLOUD_NOTIFICATION.SEND_DATA
を使用するときにサポートされる最大メッセージ・サイズは、32kバイトです。 -
DBMS_CLOUD_NOTIFICATION
は、Autonomous Databaseバージョン19.21以上のメール通知にのみ使用できます。
-
-
msteams
プロバイダの場合、ユーザーはMicrosoft Teamsアプリケーションとそれに構成されているボットを必要とします。管理センターから管理者からの承認を取得した後、アプリケーションを組織に公開し、インストールする必要があります。また、ユーザーは、Azure PortalからグラフAPIのFiles.ReadWrite.All
およびChannelSettings.Read.All
権限にアクセスする必要があります。必要なトークンを生成するには、ユーザー名にbot_id
、パスワードにbot_secret
が必要です。Microsoft Teamsで
DBMS_CLOUD_NOTIFICATION.SEND_DATA
を使用するときにサポートされる最大ファイル・サイズは4MBです。 slack
プロバイダの場合、username
値は任意の有効な文字列にでき、password
はSlackボット・トークンです。
サンプル
email
プロバイダを使用してSQL出力を送信します。
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'EMAIL_CRED',
username => 'username',
password => 'password');
END;
/
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_DATA
(
provider => 'email',
credential_name => 'EMAIL_CRED',
query => 'SELECT tablespace_name FROM dba_tablespaces',
params => json_object('recipient' value 'mark@oracle.com, suresh@oracle.com',
'to_cc' value 'nicole@oracle.com1, jordan@oracle.com',
'to_bcc' value 'manisha@oracle.com',
'subject' value 'Test subject',
'type' value 'json',
'title' value 'mytitle',
'message' value 'This is the message',
'smtp_host' value 'smtp.email.example.com',
'sender' value 'approver_sender@oracle.com' )
);
END;
/
msteams
プロバイダを使用してSQL出力を送信します。
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(credential_name => 'TEAMS_CRED',
username => 'bot_id',
password => 'bot_secret');
END;
/
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE
(provider => 'msteams',
credential_name => 'TEAMS_CRED',
query => 'SELECT tablespace_name FROM dba_tablespaces',
params => json_object('tenant'value '5b743bc******c0286',
'team'value '0ae401*********5d2bd',
'channel'value '19%3a94be023*****%40thread.tacv2',
'title'value 'today',
'type'value 'csv'));
END;
/
slack
プロバイダを使用してSQL出力を送信します。
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'SLACK_CRED',
username => 'SLACK_TOKEN',
password => 'password');
END;
/
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_DATA
(
provider => 'slack',
credential_name => 'SLACK_CRED',
query => 'SELECT username, account_status, expiry_date FROM USER_USERS WHERE rownum < 5',
params => json_object('channel' value 'C0....08','type' value 'csv'));
END;
/
SEND_MESSAGEプロシージャ
プロシージャは、プロバイダにテキスト・メッセージを送信します。
構文
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE
(
provider IN VARCHAR2,
credential_name IN VARCHAR2,
message IN CLOB,
params IN CLOB
);
パラメータ
パラメータ | 説明 |
---|---|
|
プロバイダを指定します。 有効な値は、 このパラメータは必須です。 |
|
プロバイダにアクセスする資格証明オブジェクトの名前。
このパラメータは必須です。 資格証明オブジェクトを作成するには、プロシージャ |
|
メッセージ・テキストを指定します。 このパラメータは必須です。 |
|
プロバイダ・タイプ
プロバイダ・タイプ
プロバイダ・タイプ
タイプが
|
Eメール・プロバイダの使用上のノート
email
プロバイダの場合、ユーザーは電子メール配信サーバーのSMTP接続エンドポイントでsmtp_host
を取得する必要があります。また、ユーザーは、credential_name
を取得するために、電子メール配信サーバーとの認証にSMTP承認済送信者とその資格証明が必要です。SMTP接続を構成し、SMTP資格証明を生成して承認する必要があります。
Msteamsプロバイダの使用上の注意
msteams
プロバイダの場合、ユーザーはMicrosoft Teamsアプリケーションとそれに構成されているボットを必要とします。管理センターから管理者からの承認を取得した後、アプリケーションを組織に公開し、インストールする必要があります。また、ユーザーは、Azure PortalからグラフAPIのFiles.ReadWrite.All
およびChannelSettings.Read.All
権限にアクセスする必要があります。必要なトークンを生成するには、ユーザー名にbot_id
、パスワードにbot_secret
が必要です。
Slackプロバイダの使用上のノート
slack
プロバイダの場合、username
値は任意の有効な文字列にでき、password
はSlackボット・トークンです。
OCIプロバイダOCI通知の使用上のノート
DBMS_CLOUD_NOTIFICATION
は、OCI通知プロバイダをサポートしています。OCI通知プロバイダの詳細は、通知の概要を参照してください。
- OCI通知プロバイダを使用するには、次を実行する必要があります。
- トピックの作成トピックの作成の詳細は、トピックの作成を参照してください
- 必要なサブスクリプションを作成します。サブスクリプションの作成の詳細は、サブスクリプションの作成を参照してください
- サブスクリプションを作成したら、サブスクリプションを確認します。メッセージは、確認済サブスクリプションにのみ公開されます。サブスクリプションの確認の詳細は、サブスクリプションの確認を参照してください。
- Autonomous Databaseインスタンス、資格証明(ユーザー資格証明を使用している場合)、およびサブスクリプション・トピックはすべて同じリージョンに配置する必要があります。
- 次の制限があるので注意してください。
- Message Size Limit(メッセージ・サイズ制限): リクエスト当たりのメッセージ・サイズ制限は64KBです。このサイズを超えるメッセージは、単一のリクエスト内で送信または処理できません。
- Message Delivery Rate Limit(メッセージ配信率制限): 使用するプロトコルに応じて、異なるメッセージ配信率制限があります。
email
プロトコル: 制限はエンドポイント当たり1分当たり10メッセージです。
この制限は、メッセージの送信および受信速度に影響を与える可能性があります。
- Transactions Per Minute (TPM) per-Tenancy Limit (テナンシ当たりのトランザクション数制限): この操作には、トピックごとに60のTPM制限があります。この制限は、特定のトピックに対して処理または処理できる1分当たりのメッセージの最大数を表します。この制限を超えると、メッセージの処理または処理速度が遅くなる可能性があります。
サンプル
email
プロバイダを使用してテキスト・メッセージを送信します。
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'EMAIL_CRED',
username => 'username',
password => 'password');
END;
/
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE
(
provider => 'email',
credential_name => 'EMAIL_CRED',
message => 'Subject content',
params => json_object('recipient' value 'mark@oracle.com, suresh@oracle.com',
'to_cc' value 'nicole@oracle.com, jordan@oracle.com',
'to_bcc' value 'manisha@oracle.com',
'subject' value 'Test subject',
'smtp_host' value 'smtp.email.example.com',
'sender' value 'approver_sender@oracle.com' )
);
END;
/
msteams
プロバイダを使用してテキスト・メッセージを送信します。
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(credential_name => 'TEAMS_CRED',
username => 'bot_id',
password => 'bot_secret');
END;
/
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE
(
provider => 'msteams',
credential_name => 'TEAMS_CRED',
message => 'text from new teams api',
params => json_object('channel'value 'C0....08'),'region'value 'india');
END;
/
slack
プロバイダにテキスト・メッセージを送信します。
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'SLACK_CRED',
username => 'SLACK_TOKEN',
password => 'password');
END;
/
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE
(
provider => 'slack',
credential_name => 'SLACK_CRED',
message => 'Send text from Autonomous Database.',
params => json_object('channel' value 'C0....08'));
END;
/
OCI通知を使用してテキスト・メッセージを送信し、oci
プロバイダを入力します:
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE
(
provider => 'oci',
credential_name => 'OCI_CRED',
message => 'Text message for you.',
params => json_object('topic_ocid' value 'oci********pa',
'title' value 'Title for message subject' ));
END;
/
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE
(
provider => 'oci',
credential_name => 'OCI$RESOURCE_PRINCIPAL',
message => 'Text message for you.',
params => json_object('topic_ocid' value 'oci********pa',
'title' value 'Title for message subject' ));
END;
/