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

Ü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: 'email', 'msteams' und 'slack'

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 "SLACK_TOKEN" und password das Slack-Bottoken sein.

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 provider im JSON-Format an.

Für den Providertyp email sind folgende Parameter gültig:

  • sender. Gibt die E-Mail-ID des genehmigten Absenders in einem String-Wert an.
  • smtp_host. Gibt den SMTP-Hostnamen in einem String-Wert an.
  • subject. Gibt den Betreff der E-Mail in einem String-Wert an. Die maximale Größe beträgt 100 Zeichen.
  • recipient. Gibt die E-Mail-IDs der Empfänger in einem String-Wert an. Verwenden Sie ein Komma zwischen E-Mail-IDs, wenn mehrere Empfänger vorhanden sind.
  • to_cc. Gibt die E-Mail-IDs an, die einen CC der E-Mail erhalten. Es ist ein String-Wert. Verwenden Sie ein Komma zwischen E-Mail-IDs, wenn mehrere CC-Empfänger vorhanden sind.
  • to_bcc. Gibt die E-Mail-IDs an, die einen BCC der E-Mail erhalten. Es ist ein String-Wert. Verwenden Sie ein Komma zwischen E-Mail-IDs, wenn mehrere BCC-Empfänger vorhanden sind.
  • message. Gibt den Meldungstext in einem String-Wert an.
  • type. Gibt das Ausgabeformat in einem String-Wert als CSV- oder JSON-Datei an.
  • title. Gibt den Titel des Anhangs der SQL-Ausgabe in einem String-Wert an. Der Titel darf nur Buchstaben, Ziffern, Unterstriche, Bindestriche oder Punkte als Zeichen in seinem Wert enthalten, da er zur Generierung eines Dateinamens verwendet wird.

Für den Providertyp msteams sind folgende Parameter gültig:

  • tenant. Gibt die Mandanten-ID im Format String an.
  • team. Gibt die Team-ID im Format String an.
  • channel. Gibt die Kanal-ID im Format String an.
  • title. Gibt den Titel der Datei im String-Format an. Die maximale Größe beträgt 50 Zeichen.
  • type. Gibt das Ausgabeformat in einem String-Wert an. Gültige Werte sind CSV oder JSON.

Für den Providertyp slack sind folgende Parameter gültig:

  • channel. Gibt die Kanal-ID in einem String-Wert an. 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".
  • type. Gibt das Ausgabeformat in einem String-Wert an. Gültige Werte sind CSV oder JSON.

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.

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: 'email', 'msteams', 'slack' und 'oci'.

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 bot_id und den Schlüssel bot_secret sowohl in Benutzername als auch in Kennwort enthalten sein.

Für den Slack-Provider muss der Benutzername der Zugangsdaten "SLACK_TOKEN" und password das Slack-Bottoken sein.

Für den oci-Provider sind die Zugangsdaten gültige, auf dem Oracle Cloud Infrastructure-Signaturschlüssel basierende Zugangsdaten.

Dieser Parameter ist obligatorisch.

message

Gibt den Meldungstext an.

Dieser Parameter ist obligatorisch.

params

Gibt bestimmte Parameter für die provider im JSON-Format an.

Für den Providertyp email sind folgende Parameter gültig:

  • sender. Gibt die E-Mail-ID des genehmigten Absenders in einem String-Wert an.
  • smtp_host. Gibt den SMTP-Hostnamen in einem String-Wert an.
  • subject. Gibt den Betreff der E-Mail in einem String-Wert an. Die maximale Größe beträgt 100 Zeichen.
  • recipient. Gibt die E-Mail-IDs der Empfänger in einem String-Wert an. Verwenden Sie ein Komma zwischen E-Mail-IDs, wenn mehrere Empfänger vorhanden sind.
  • to_cc. Gibt die E-Mail-IDs an, die einen CC der E-Mail erhalten. Verwenden Sie ein Komma zwischen E-Mail-IDs, wenn mehrere CC-Empfänger vorhanden sind.
  • to_bcc. Gibt die E-Mail-IDs an, die einen BCC der E-Mail erhalten. Verwenden Sie ein Komma zwischen E-Mail-IDs, wenn mehrere BCC-Empfänger vorhanden sind.

Für den Providertyp msteams lautet der gültige Parameter:

  • channel. Gibt die Kanal-ID in einem String-Wert an.

Für den Providertyp slack lautet der gültige Parameter:

  • channel. Gibt die Kanal-ID in einem String-Wert an.

Für den Provider OCI Notifications mit dem Typ oci sind folgende Parameter gültig:

  • topic_ocid: Gibt an
  • title: Gibt die Betreffzeile der Nachricht an.

Beim oci-Provider gibt es verschiedene mögliche Endpunkte für eine Nachricht, basierend auf den Abonnements. Der Parameter title wird für verschiedene Abonnements unterschiedlich behandelt:

  • E-Mail: title gibt die Betreffzeile der Nachricht an.
  • Slack: Der Wert title wird nicht verwendet. Wenn sie enthalten ist, wird der Wert ignoriert.

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.

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;
/