DBMS_CLOUD_NOTIFICATION-Package
Mit dem Package DBMS_CLOUD_NOTIFICATION
können Sie Nachrichten oder die Ausgabe einer SQL-Abfrage an einen Provider senden.
Voraussetzungen
- Erstellen Sie ein NAT-Gateway im virtuellen Cloud-Netzwerk (VCN), in dem sich Ihre Autonomous Database-Ressourcen befinden, indem Sie die Anweisungen unter NAT-Gateway erstellen in der Oracle Cloud Infrastructure-Dokumentation befolgen.
- Nachdem Sie das NAT-Gateway erstellt haben, fügen Sie eine Routingregel und eine Egress-Sicherheitsregel zu jedem Subnetz (im VCN) hinzu, in dem sich Autonomous Database-Ressourcen befinden. So können diese Ressourcen mit dem Gateway einen Public Key aus 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 Subnetzes, um die Seite Routentabellendetails anzuzeigen.
- Prüfen Sie in der Tabelle der vorhandenen Routingregeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
- Zielort: 0.0.0.0/0
- Zieltyp: NAT-Gateway
- Ziel: Der Name des NAT-Gateway, das Sie gerade im VCN erstellt haben
Wenn keine solche Regel vorhanden ist, klicken Sie auf Routenregeln hinzufügen, und fügen Sie eine Routingregel mit diesen Eigenschaften hinzu.
- Zurück zur Seite Subnetzdetails für das Subnetz.
- Klicken Sie in der Tabelle Sicherheitslisten des Subnetzes auf den Namen der Sicherheitsliste des Subnetzes, um die Seite Sicherheitslistendetails anzuzeigen.
- Klicken Sie im Seitenmenü unter Ressourcen auf Egress-Regeln.
- Prüfen Sie in der Tabelle der vorhandenen Ausgangsregeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
- Zieltyp: CIDR
- Zielort: 0.0.0.0/0
- IP-Protokoll: TCP
- Quellportbereich: 443
- Ziel-Portbereich: Alle
Wenn keine derartige Regel vorhanden ist, klicken Sie auf Egress-Regeln hinzufügen, und fügen Sie eine Egress-Regel mit diesen Eigenschaften hinzu.
Die HTTP-Proxyeinstellungen in Ihrer Umgebung müssen es der Datenbank ermöglichen, auf den Cloud-Serviceprovider zuzugreifen.
Hinweis:
Die Netzwerkkonfiguration einschließlich des HTTP-Proxys kann nur bearbeitet werden, bis sich die Exadata-Infrastruktur im Status Aktivierung erforderlich befindet. Sobald sie aktiviert ist, können Sie diese Einstellungen nicht mehr bearbeiten.Für die Einrichtung eines HTTP-Proxys für eine bereits bereitgestellte Exadata-Infrastruktur ist eine Serviceanfrage (SR) in My Oracle Support erforderlich. Weitere Informationen finden Sie unter Serviceanfrage in My Oracle Support erstellen.
Zusammenfassung der DBMS_CLOUD_NOTIFICATION-Unterprogramme
In dieser Tabelle werden die im Package enthaltenen Unterprogramme zusammengefasst.
Unterprogramm | Beschreibung |
---|---|
Ausgabe der SQL-Abfrage an einen Provider senden |
|
Textnachricht an einen klinischen Mitarbeiter 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 |
---|---|
|
Gibt den Provider an. Gültige Werte sind: " Dieser Parameter ist erforderlich. |
|
Name des Zugangsdatenobjekts für den Zugriff auf den Provider. Für den E-Mail-Provider sind die Zugangsdaten der Name der Zugangsdaten des SMTP-genehmigten Absenders, der seinen Benutzernamen und sein Kennwort enthält. Für den msteams-Provider ist der Berechtigungsnachweis der Name des Berechtigungsnachweises. Für den Slack-Provider muss der Benutzername der Zugangsdaten Dieser Parameter ist erforderlich. |
|
Gibt die auszuführende SQL-Abfrage an. Ergebnisse werden an den klinischen Mitarbeiter gesendet. Dieser Parameter ist erforderlich. |
|
Gibt bestimmte Parameter für Für den Providertyp
Für den Providertyp
Für den Providertyp
Dieser Parameter ist erforderlich. |
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 für den Email Delivery-Server, umsmtp_host
abzurufen. Der Benutzer benötigt außerdem einen SMTP-genehmigten Absender und seine Zugangsdaten, um sich beim Email Delivery-Server zu authentifizieren und diecredential_name
abzurufen. 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 die Genehmigung vom Admin-Center eingeholt wurde. Der Benutzer benötigt auch Zugriff auf die BerechtigungenFiles.ReadWrite.All
undChannelSettings.Read.All
für die Diagramm-API über sein Azure-Portal. Um das erforderliche Token zu generieren, benötigt der Benutzerbot_id
im Benutzernamen undbot_secret
im Kennwort. Die maximale Dateigröße, die bei der Verwendung vonDBMS_CLOUD_NOTIFICATION.SEND_DATA
für Microsoft Teams unterstützt wird, beträgt 4 MB. - Für den
slack
-Provider kann der Wertusername
eine beliebige gültige Zeichenfolge sein, undpassword
ist das Slack-Bottoken.
Beispiel
SQL-Ausgabe mit dem email
-Provider 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 msteams
-Provider 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 slack
-Provider 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
Das Verfahren sendet eine Textnachricht an einen klinischen Mitarbeiter.
Syntax
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE
(
provider IN VARCHAR2,
credential_name IN VARCHAR2,
message IN CLOB,
params IN CLOB
);
Parameter
Parameter | Beschreibung |
---|---|
|
Gibt den Provider an. Gültige Werte sind: " Dieser Parameter ist erforderlich. |
|
Name des Zugangsdatenobjekts für den Zugriff auf den Provider. Für den E-Mail-Provider sind die Zugangsdaten der Name der Zugangsdaten des SMTP-genehmigten Absenders, der seinen Benutzernamen und sein Kennwort enthält. Für den msteams-Provider müssen die Zugangsdaten den Schlüssel Für den Slack-Provider muss der Benutzername der Zugangsdaten Dieser Parameter ist erforderlich. |
|
Gibt den Meldungstext an. Dieser Parameter ist erforderlich. |
|
Gibt bestimmte Parameter für Für den Providertyp
email sind folgende Parameter gültig:
Für den Providertyp
msteams ist der gültige Parameter:
Für den Providertyp
slack ist der gültige Parameter:
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 erforderlich. |
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 für den Email Delivery-Server, umsmtp_host
abzurufen. Der Benutzer benötigt außerdem einen SMTP-genehmigten Absender und seine Zugangsdaten, um sich beim Email Delivery-Server zu authentifizieren und diecredential_name
abzurufen. 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 die Genehmigung vom Admin-Center eingeholt wurde. Der Benutzer benötigt auch Zugriff auf die BerechtigungenFiles.ReadWrite.All
undChannelSettings.Read.All
für die Diagramm-API über sein Azure-Portal. Um das erforderliche Token zu generieren, benötigt der Benutzerbot_id
im Benutzernamen undbot_secret
im Kennwort. - Für den
slack
-Provider kann der Wertusername
eine beliebige gültige Zeichenfolge sein, undpassword
ist das Slack-Bottoken.
Beispiele
Senden Sie eine Textnachricht mit dem email
-Provider:
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;
/
Textnachricht mit dem msteams
-Provider 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',
message => 'text from new teams api',
params => json_object('channel'value 'C0....08'),'region'value 'india');
END;
/
Textnachricht mit dem slack
-Provider senden:
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;
/