Package DBMS_CLOUD_NOTIFICATION

Le package DBMS_CLOUD_NOTIFICATION vous permet d'envoyer des messages ou la sortie d'une requête SQL à un fournisseur.

Les fournisseurs pris en charge avec DBMS_CLOUD_NOTIFICATION sont les suivants : Email, Microsoft Teams, OCI Notifications (ONS) et Slack.

Lorsque vous utilisez le service OCI Notifications avec le package DBMS_CLOUD_NOTIFICATION, seule la procédure DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE est prise en charge (la procédure DBMS_CLOUD_NOTIFICATION.SEND_DATA n'est pas prise en charge).

Prérequis

Récapitulatif des sous-programmes DBMS_CLOUD_NOTIFICATION

Ce tableau récapitule les sous-programmes inclus dans le package.

Sous-programme Description
Procédure SEND_DATA Envoyer la sortie de requête SQL à un fournisseur.
Procédure SEND_MESSAGE Envoyer un message texte à un fournisseur.

Procédure SEND_DATA

La procédure SEND_DATA envoie les résultats de la requête indiquée à un fournisseur.

Syntaxe

DBMS_CLOUD_NOTIFICATION.SEND_DATA(
       provider           IN  VARCHAR2,
       credential_name    IN  VARCHAR2,
       query              IN  CLOB,
       params             IN  CLOB
 );

Paramètres

Paramètre Description
provider

Spécifie le fournisseur.

Les valeurs valides sont : 'email', 'msteams' et 'slack'

Ce paramètre est obligatoire.

credential_name

Nom de l'objet d'informations d'identification permettant d'accéder au fournisseur.

Pour le fournisseur de messagerie, les informations d'identification sont le nom des informations d'identification de l'expéditeur SMTP approuvé qui contient son nom utilisateur et son mot de passe.

Pour le fournisseur msteams, les informations d'identification sont le nom des informations d'identification.

Pour le fournisseur Slack, le nom utilisateur des informations d'identification doit être "SLACK_TOKEN" et password est le jeton de bot Slack.

Ce paramètre est obligatoire.

query

Indique la requête SQL à exécuter. Les résultats sont envoyés au fournisseur.

Ce paramètre est obligatoire.

params

Spécifie des paramètres spécifiques pour provider au format JSON.

Pour le type de fournisseur email, les paramètres valides sont les suivants :

  • sender. Indique l'ID courriel de l'expéditeur approuvé dans une valeur String.
  • smtp_host. Indique le nom d'hôte SMTP dans une valeur String.
  • subject. Indique l'objet du courriel dans une valeur String. La taille maximale est de 100 caractères.
  • recipient. Indique les ID de courriel des destinataires dans une valeur String. Utilisez une virgule entre les ID de courriel lorsqu'il y a plusieurs destinataires.
  • to_cc. Indique les ID d'e-mail qui reçoivent une copie de l'e-mail. Valeur String. Utilisez une virgule entre les ID d'e-mail lorsqu'il y a plusieurs destinataires CC.
  • to_bcc. Indique les ID d'e-mail qui reçoivent un Cci de l'e-mail. Valeur String. Utilisez une virgule entre les ID e-mail lorsqu'il existe plusieurs destinataires en Cci.
  • message. Indique le texte du message dans une valeur String.
  • type. Indique le format de sortie dans une valeur String au format CSV ou JSON.
  • title. Indique le titre de la pièce jointe de la sortie SQL dans une valeur String. Le titre ne doit contenir que des lettres, des chiffres, des traits de soulignement, des traits d'union ou des points en tant que caractères dans sa valeur car il est utilisé pour générer un nom de fichier.

Pour le type de fournisseur msteams, les paramètres valides sont les suivants :

  • tenant. Indique l'ID de locataire au format String.
  • team. Indique l'ID d'équipe au format String.
  • channel. Indique l'ID de canal au format String.
  • title. Indique le titre du fichier au format String. La taille maximale est de 50 caractères.
  • type. Indique le format de sortie dans une valeur String. Les valeurs valides sont CSV ou JSON.

Pour le type de fournisseur slack, les paramètres valides sont les suivants :

  • channel. Indique l'ID de canal dans une valeur String. L'ID de canal est un ID unique pour un canal et est différent du nom du canal. Dans Slack, lorsque vous affichez les détails du canal, vous pouvez trouver l'ID de canal dans l'onglet "A propos de".
  • type. Indique le format de sortie dans une valeur String. Les valeurs valides sont CSV ou JSON.

Ce paramètre est obligatoire.

Remarques sur l'utilisation

Utilisez la procédure DBMS_CLOUD.CREATE_CREDENTIAL(credential_name, username et password) pour créer l'objet d'informations d'identification. Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.

Exemple

Envoyez la sortie SQL avec le fournisseur email :

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

Envoyez la sortie SQL avec le fournisseur 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',
        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;
/

Envoyez la sortie SQL avec le fournisseur slack :

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

Procédure SEND_MESSAGE

La procédure envoie un message texte à un soignant.

Syntaxe

DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE(
       provider           IN  VARCHAR2,
       credential_name    IN  VARCHAR2,
       message            IN  CLOB,
       params             IN  CLOB
 );

Paramètres

Paramètre Description
provider

Spécifie le fournisseur.

Les valeurs valides sont les suivantes : 'email', 'msteams', 'slack' et 'oci'.

Ce paramètre est obligatoire.

credential_name

Nom de l'objet d'informations d'identification permettant d'accéder au fournisseur.

Pour le fournisseur de messagerie, les informations d'identification sont le nom des informations d'identification de l'expéditeur SMTP approuvé qui contient son nom utilisateur et son mot de passe.

Pour le fournisseur msteams, les informations d'identification doivent contenir bot_id et la clé bot_secret à la fois dans le nom utilisateur et le mot de passe.

Pour le fournisseur Slack, le nom utilisateur des informations d'identification doit être "SLACK_TOKEN" et password est le jeton de bot Slack.

Pour le fournisseur oci, les informations d'identification sont des informations d'identification basées sur une clé de signature Oracle Cloud Infrastructure valides.

Ce paramètre est obligatoire.

message

Indique le texte du message.

Ce paramètre est obligatoire.

params

Spécifie des paramètres spécifiques pour provider au format JSON.

Pour le type de fournisseur email, les paramètres valides sont les suivants :

  • sender. Indique l'ID courriel de l'expéditeur approuvé dans une valeur String.
  • smtp_host. Indique le nom d'hôte SMTP dans une valeur String.
  • subject. Indique l'objet du courriel dans une valeur String. La taille maximale est de 100 caractères.
  • recipient. Indique les ID de courriel des destinataires dans une valeur String. Utilisez une virgule entre les ID de courriel lorsqu'il y a plusieurs destinataires.
  • to_cc. Indique les ID d'e-mail qui reçoivent une copie de l'e-mail. Utilisez une virgule entre les ID d'e-mail lorsqu'il y a plusieurs destinataires CC.
  • to_bcc. Indique les ID d'e-mail qui reçoivent un Cci de l'e-mail. Utilisez une virgule entre les ID e-mail lorsqu'il existe plusieurs destinataires en Cci.

Pour le type de fournisseur msteams, le paramètre valide est :

  • channel. Indique l'ID de canal dans une valeur String.

Pour le type de fournisseur slack, le paramètre valide est :

  • channel. Indique l'ID de canal dans une valeur String.

Pour le fournisseur OCI Notifications de type oci, les paramètres valides sont les suivants :

  • topic_ocid : indique
  • title : indique la ligne d'objet du message.

Avec le fournisseur oci, il existe différentes adresses possibles pour un message, en fonction des abonnements. Le paramètre title est traité différemment pour différents abonnements :

  • email : title indique l'objet du message.
  • Slack : la valeur title n'est pas utilisée. Si elle est incluse, la valeur est ignorée.

L'ID de canal est un ID unique pour un canal et est différent du nom du canal. Dans Slack, lorsque vous affichez les détails du canal, vous pouvez trouver l'ID de canal dans l'onglet "A propos de".

Ce paramètre est obligatoire.

Remarques sur l'utilisation

Utilisez la procédure DBMS_CLOUD.CREATE_CREDENTIAL(credential_name, username et password) pour créer l'objet d'informations d'identification. Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.

Exemples 

Envoyez un message texte avec le fournisseur 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;
/

Envoyez un message texte avec le fournisseur 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;
/

Envoyez un message texte avec le fournisseur 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;
/

Envoyez un message texte avec OCI Notifications, saisissez le fournisseur 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;
/