DBMS_CLOUD_NOTIFICATION-Package
Mit dem Package DBMS_CLOUD_NOTIFICATION können Sie Nachrichten oder die Ausgabe einer SQL-Abfrage an einen Provider senden.
Die unterstützten Provider mit DBMS_CLOUD_NOTIFICATION sind: E-Mail, Microsoft Teams, OCI Notifications (ONS) und Slack.
Wenn Sie den OCI Notifications-Service mit dem Package DBMS_CLOUD_NOTIFICATION verwenden, wird nur die Prozedur DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE unterstützt (die Prozedur DBMS_CLOUD_NOTIFICATION.SEND_DATA wird nicht unterstützt).
Voraussetzungen
Eine ausgehende Konnektivität muss von Ihrem Flottenadministrator mit einem NAT-Gateway konfiguriert worden sein, wie unten beschrieben:
-
Sie können ein NAT-Gateway im virtuellen Cloud-Netzwerk (VCN) erstellen, in das sich Ihre autonomen KI-Datenbankressourcen befinden, indem Sie die Anweisungen unter "NAT-Gateway erstellen" in der Oracle Cloud Infrastructure-Dokumentation befolgen.
-
Nachdem das NAT-Gateway erstellt wurde, fügen Sie eine Routingregel und eine Egress-Sicherheitsregel zu jedem Subnetz (im VCN) hinzu, in dem sich autonome KI-Datenbankressourcen befinden. Damit können diese Ressourcen über das Gateway einen öffentlichen Schlüssel von Ihrer Azure AD-Instanz abrufen:
-
Gehen Sie zur Seite Subnetzdetails für das Subnetz.
-
Klicken Sie auf der Registerkarte Informationen zum Subnetz auf den Namen der Routentabelle des Subnetzs, um die Seite Routentabellendetails anzuzeigen.
-
Überprüfen Sie in der Tabelle der vorhandenen Routingregeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
-
Ziel: 0.0.0.0/0
-
Zieltyp: NAT-Gateway
-
Ziel: Der Name des NAT-Gateways, das Sie gerade im VCN erstellt hat
Wenn keine derartige Regel vorhanden ist, klicken Sie auf Routingregeln hinzufügen, und fügen Sie eine Routingregel mit diesen Merkmalen hinzu.
-
-
Kehren Sie zur Seite Subnetzdetails für das Subnetz erneut zurück.
-
Klicken Sie in der Tabelle Sicherheitslisten des Subnetzes auf den Namen der Sicherheitsliste des Subnetzes, um das Register Sicherheitslistendetails anzuzeigen.
-
Klicke im Seitenmenü unter Ressourcen auf Egress-Regeln.
-
Überprüfen Sie in der Tabelle der vorhandenen Egress-Regeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
-
Zieltyp:CIDR
-
Ziel:0.0.0.0/0
-
IP-Protokoll:TCP
-
Quellportbereich:443
-
Zielportbereich: Alle
Wenn keine derartige Regel vorhanden ist, klicken Sie auf Egress-Regeln hinzufügen, und fügen Sie eine Egress-Regel mit diesen Merkmalen hinzu.
-
-
Die HTTP-Proxyeinstellungen in Ihrer Umgebung müssen es der Datenbank ermöglichen, auf den Cloud-Serviceprovider zuzugreifen.
Diese Einstellungen werden vom Flottenadministrator beim Erstellen der Exadata Cloud@Customer-Infrastruktur definiert, wie unter Exadata Database Service on Cloud@Customer mit der Konsole bereitstellen beschrieben.
Hinweis: Die Netzwerkkonfiguration einschließlich des HTTP-Proxys kann nur bearbeitet werden, bis die Exadata-Infrastruktur den Status Aktivierung erforderlich aufweist. Sobald es aktiviert ist, können Sie diese Einstellungen nicht mehr bearbeiten.
Für das Einrichten eines HTTP-Proxys für eine bereits bereitgestellte Exadata-Infrastruktur ist eine Serviceanfrage (SR) in My Oracle Support erforderlich. Weitere Informationen finden Sie unter Service Request in My Oracle Support erstellen.
Übersicht über DBMS_CLOUD_NOTIFICATION-Unterprogramme
In dieser Tabelle werden die im Package enthaltenen Unterprogramme zusammengefasst.
| Unterprogramm | Beschreibung |
|---|---|
| Prozedur SEND_DATA | SQL-Abfrageausgabe an einen Provider senden |
| Prozedur SEND_MESSAGE | Eine Textnachricht an einen Provider senden. |
Prozedur SEND_DATA
Die Prozedur SEND_DATA sendet die Ergebnisse der angegebenen Abfrage an einen Provider.
Syntax
DBMS_CLOUD_NOTIFICATION.SEND_DATA(
provider IN VARCHAR2,
credential_name IN VARCHAR2,
query IN CLOB,
params IN CLOB
);
Parameter
| Parameter | Beschreibung |
|---|---|
provider |
Gibt den Provider an. Gültige Werte sind: ' Dieser Parameter ist obligatorisch. |
credential_name |
Der Name des Zugangsdatenobjekts für den Zugriff auf den Provider. Für den E-Mail-Provider sind die Zugangsdaten der Zugangsdaten des SMTP-genehmigten Absenders, der seinen Benutzernamen und sein Kennwort enthält. Für den msteams-Provider sind die Zugangsdaten der Name der Berechtigungsnachweise. Für den Slack-Provider muss der Benutzername der Zugangsdaten Dieser Parameter ist obligatorisch. |
query |
Gibt die auszuführende SQL-Abfrage an. Ergebnisse werden an den klinischen Mitarbeiter gesendet. Dieser Parameter ist obligatorisch. |
params |
Gibt bestimmte Parameter für die Für den Providertyp
Für den Providertyp
Für den Providertyp
Dieser Parameter ist obligatorisch. |
Verwendungshinweise
Verwenden Sie die Prozedur DBMS_CLOUD.CREATE_CREDENTIAL(credential_name, username, password), um das Zugangsdatenobjekt zu erstellen. Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.
-
Für den
email-Provider benötigt der Benutzer einen SMTP-Verbindungsendpunkt, damit der Email Delivery-Serversmtp_hostabrufen kann. Der Benutzer benötigt außerdem einen SMTP-genehmigten Absender und seine Zugangsdaten zur Authentifizierung beim Email Delivery-Server, um diecredential_nameabzurufen. SMTP-Verbindung muss konfiguriert sein, und SMTP-Zugangsdaten müssen generiert und genehmigt werden. -
Für den
msteams-Provider erfordert der Benutzer die Microsoft Teams-App und einen darin konfigurierten Bot. Die App muss in der Organisation veröffentlicht und installiert werden, nachdem der Administrator die Genehmigung vom Admin Center erhalten hat. Der Benutzer benötigt auch Zugriff für die BerechtigungFiles.ReadWrite.AllundChannelSettings.Read.Allfür die Graph-API über sein Azure-Portal. Um das erforderliche Token zu generieren, benötigt der Benutzerbot_idim Benutzernamen undbot_secretim Kennwort. Die maximale Dateigröße, die bei der Verwendung vonDBMS_CLOUD_NOTIFICATION.SEND_DATAfür Microsoft Teams unterstützt wird, beträgt 4 MB. -
Für den
slack-Provider kann der Wertusernameeine beliebige gültige Zeichenfolge sein, undpasswordist das Slack-Bottoken.
Beispiel
SQL-Ausgabe mit dem Provider email senden:
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;
/
SQL-Ausgabe mit dem Provider msteams senden:
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;
/
SQL-Ausgabe mit dem Provider slack senden:
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;
/
Prozedur SEND_MESSAGE
Die Prozedur sendet eine Textnachricht an einen Mitarbeiter.
Syntax
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE(
provider IN VARCHAR2,
credential_name IN VARCHAR2,
message IN CLOB,
params IN CLOB
);
Parameter
| Parameter | Beschreibung |
|---|---|
provider |
Gibt den Provider an. Gültige Werte sind: ' Dieser Parameter ist obligatorisch. |
credential_name |
Der Name des Zugangsdatenobjekts für den Zugriff auf den Provider. Für den E-Mail-Provider sind die Zugangsdaten der Zugangsdaten des SMTP-genehmigten Absenders, der seinen Benutzernamen und sein Kennwort enthält. Für den msteams-Provider müssen die Zugangsdaten Für den Slack-Provider muss der Benutzername der Zugangsdaten Für den Dieser Parameter ist obligatorisch. |
message |
Gibt den Meldungstext an. Dieser Parameter ist obligatorisch. |
params |
Gibt bestimmte Parameter für die Für den Providertyp
Für den Providertyp
Für den Providertyp
Für den Provider OCI Notifications mit dem Typ
Beim
Die Kanal-ID ist eine eindeutige ID für einen Kanal und unterscheidet sich vom Kanalnamen. Wenn Sie in Slack Kanaldetails anzeigen, finden Sie die Kanal-ID auf der Registerkarte "Info". Dieser Parameter ist obligatorisch. |
Verwendungshinweise
Verwenden Sie die Prozedur DBMS_CLOUD.CREATE_CREDENTIAL(credential_name, username, password), um das Zugangsdatenobjekt zu erstellen. Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.
-
Für den
email-Provider benötigt der Benutzer einen SMTP-Verbindungsendpunkt, damit der Email Delivery-Serversmtp_hostabrufen kann. Der Benutzer benötigt außerdem einen SMTP-genehmigten Absender und seine Zugangsdaten zur Authentifizierung beim Email Delivery-Server, um diecredential_nameabzurufen. SMTP-Verbindung muss konfiguriert sein, und SMTP-Zugangsdaten müssen generiert und genehmigt werden. -
Für den
msteams-Provider erfordert der Benutzer die Microsoft Teams-App und einen darin konfigurierten Bot. Die App muss in der Organisation veröffentlicht und installiert werden, nachdem der Administrator die Genehmigung vom Admin Center erhalten hat. Der Benutzer benötigt auch Zugriff für die BerechtigungFiles.ReadWrite.AllundChannelSettings.Read.Allfür die Graph-API über sein Azure-Portal. Um das erforderliche Token zu generieren, benötigt der Benutzerbot_idim Benutzernamen undbot_secretim Kennwort. -
Für den
slack-Provider kann der Wertusernameeine beliebige gültige Zeichenfolge sein, undpasswordist das Slack-Bottoken. -
Die
DBMS_CLOUD_NOTIFICATIONunterstützt den OCI-Benachrichtigungsprovider. Einzelheiten zum OCI-Benachrichtigungsprovider finden Sie unter Überblick über Notifications.-
Um den OCI Notifications-Provider zu verwenden, müssen Sie Folgendes tun:
-
Thema erstellen. Weitere Informationen zum Erstellen von Themen finden Sie unter Themen erstellen.
-
Erstellen Sie die erforderlichen Abonnements. Weitere Informationen zum Erstellen eines Abonnements finden Sie unter Abonnement erstellen.
-
Nachdem Sie die Abonnements erstellt haben, bestätigen Sie die Abonnements. Nachrichten werden nur für bestätigte Abonnements veröffentlicht. Weitere Informationen zur Bestätigung von Abonnements finden Sie unter Abonnement bestätigen.
-
-
Die Instanz der autonomen KI-Datenbank, die Zugangsdaten (wenn Sie Benutzerzugangsdaten verwenden) und das Abonnementthema müssen sich alle in derselben Region befinden.
-
Dabei gelten die folgenden Einschränkungen.
-
Grenzwert für Nachrichtengröße: Die maximale Nachrichtengröße pro Anforderung beträgt 64 KB. Nachrichten, die diese Größe überschreiten, können nicht innerhalb einer einzigen Anforderung gesendet oder verarbeitet werden.
-
Ratenlimit für die Nachrichtenzustellung: Je nach verwendetem Protokoll gibt es unterschiedliche Ratenlimits für die Nachrichtenzustellung.
email-Protokoll: Das Limit beträgt 10 Nachrichten pro Minute pro Endpunkt.
Diese Einschränkung kann sich auf die Geschwindigkeit auswirken, mit der Nachrichten übertragen und empfangen werden können.
-
Transaktionslimit pro Minute (TPM) pro Mandant: Für diesen Vorgang gibt es ein TPM-Limit von 60 pro Thema. Dieses Limit gibt die maximale Anzahl von Nachrichten pro Minute an, die für ein bestimmtes Thema verarbeitet oder verarbeitet werden können. Eine Überschreitung dieses Limits kann dazu führen, dass Nachrichten nicht langsamer verarbeitet oder verarbeitet werden.
-
-
Beispiele
Senden Sie eine Textnachricht an den Provider 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;
/
Senden Sie eine Textnachricht an den Provider 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;
/
Senden Sie eine Textnachricht an den Provider 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 AI Database.',
params => json_object('channel' value 'C0....08'));
END;
/
Senden Sie eine Textnachricht mit OCI Notifications, und geben Sie den oci-Provider ein:
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;
/