Ensemble DBMS_CLOUD_NOTIFICATION

L'ensemble DBMS_CLOUD_NOTIFICATION vous permet d'envoyer des messages ou la sortie d'une interrogation SQL à un fournisseur.

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

Lorsque vous utilisez le service d'avis OCI avec l'ensemble 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).

Conditions requises

Une connectivité sortante doit avoir été configurée à l'aide d'une passerelle NAT, par l'administrateur de votre parc, comme décrit ci-dessous :

  • Créez une passerelle NAT dans le réseau en nuage virtuel (VCN) où résident vos ressources de base de données d'intelligence artificielle autonome en suivant les instructions sous Créer une passerelle NAT dans la documentation sur Oracle Cloud Infrastructure.

  • Après avoir créé la passerelle NAT, ajoutez une règle de routage et une règle de sécurité de trafic sortant à chaque sous-réseau (dans le VCN) où résident les ressources de la base de données IA autonome afin que ces ressources puissent utiliser la passerelle pour obtenir une clé publique à partir de votre instance Azure AD :

    1. Allez à la page Détails du sous-réseau pour le sous-réseau.

    2. Dans l'onglet Informations sur le sous-réseau, cliquez sur le nom de la table de routage du sous-réseau pour afficher sa page Détails de la table de routage.

    3. Dans la table des règles de routage existantes, vérifiez s'il existe déjà une règle présentant les caractéristiques suivantes :

      • Destination : 0.0.0.0/0

      • Type de cible : Passerelle NAT

      • Cible : Nom de la passerelle NAT que vous venez de créer dans le VCN

      Si une telle règle n'existe pas, cliquez sur Ajouter des règles de routage et ajoutez une règle de routage avec ces caractéristiques.

    4. Retournez à la page Détails du sous-réseau pour le sous-réseau.

    5. Dans la table Listes de sécurité du sous-réseau, cliquez sur le nom de la liste de sécurité du sous-réseau pour afficher sa page Détails de la liste de sécurité.

    6. Dans le menu latéral, sous Ressources, cliquez sur Règles de trafic sortant.

    7. Dans la table des règles de trafic sortant existantes, vérifiez s'il existe déjà une règle présentant les caractéristiques suivantes :

      • Type de destination :CIDR

      • Destination :0.0.0.0/0

      • Protocole IP : TCP

      • Intervalle de ports sources :443

      • Intervalle de ports de destination :Tous

      Si une telle règle n'existe pas, cliquez sur Ajouter des règles sortantes et ajoutez une règle sortante avec ces caractéristiques.

Les paramètres de mandataire HTTP de votre environnement doivent permettre à la base de données d'accéder au fournisseur de services en nuage.

Ces paramètres sont définis par l'administrateur de votre parc lors de la création de l'infrastructure Exadata Cloud@Customer, comme décrit sous Utilisation de la console pour provisionner le service Exadata Database sur Cloud@Customer.

Note : La configuration réseau, y compris le mandataire HTTP, ne peut être modifiée que jusqu'à ce que l'infrastructure Exadata soit à l'état Activation requise. Une fois activé, vous ne pouvez pas modifier ces paramètres.

La configuration d'un mandataire HTTP pour une infrastructure Exadata déjà provisionnée nécessite une demande de service dans My Oracle Support. Pour plus de détails, voir Créer une demande de service dans My Oracle Support.

Sommaire des sous-programmes DBMS_CLOUD_NOTIFICATION

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

Sous-programme Description
Procédure SEND_DATA Envoyer la sortie de l'interrogation 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 l'interrogation spécifié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 les suivantes : 'email', 'msteams' et 'slack'

Ce paramètre est obligatoire.

credential_name

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

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

Pour le fournisseur msteams, les données d'identification sont le nom des données d'identification.

Pour le fournisseur Slack, le nom d'utilisateur des données d'identification doit être "SLACK_TOKEN" et password est le jeton de robot Slack.

Ce paramètre est obligatoire.

query

Spécifie l'interrogation 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 courriel des destinataires dans une valeur String. Utilisez une virgule entre les ID courriel lorsqu'il y a plusieurs destinataires.
  • to_cc. Indique les codes de courriel qui reçoivent une copie conforme du courriel. Il s'agit d'une valeur String. Utilisez une virgule entre les ID courriel lorsqu'il y a plusieurs destinataires de carte de crédit.
  • to_bcc. Indique les ID courriel qui reçoivent un Cci du courriel. Il s'agit d'une valeur String. Utilisez une virgule entre les ID courriel lorsqu'il y a plusieurs destinataires en Cci.
  • message. Indique le texte du message dans une valeur String.
  • type. Spécifie le format de sortie dans une valeur String au format CSV ou JSON.
  • title. Spécifie le titre du fichier joint de la sortie SQL dans une valeur String. Le titre ne doit contenir que des lettres, des chiffres, des traits de soulignement, des tirets 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 locataire dans le format String.
  • team. Indique l'ID équipe au format String.
  • channel. Indique l'ID canal dans le format String.
  • title. Spécifie le titre du fichier au format String. La taille maximale est de 50 caractères.
  • type. Spécifie 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 canal dans une valeur String. L'ID canal est un ID unique pour un canal et est différent du nom du canal. Dans Slack, lorsque vous consultez les détails du canal, vous pouvez trouver l'ID canal dans l'onglet "À propos de".
  • type. Spécifie le format de sortie dans une valeur String. Les valeurs valides sont CSV ou JSON.

Ce paramètre est obligatoire.

Notes d'utilisation

Utilisez la procédure DBMS_CLOUD.CREATE_CREDENTIAL(credential_name, username, password) pour créer l'objet de données d'identification. Pour plus d'informations, voir Procédure CREATE_CREDENTIAL.

Exemple

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

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

Envoyer une 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 fournisseur.

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 de données d'identification permettant d'accéder au fournisseur.

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

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

Pour le fournisseur Slack, le nom d'utilisateur des données d'identification doit être "SLACK_TOKEN" et password est le jeton de robot Slack.

Pour le fournisseur oci, les données d'identification sont des données 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 courriel des destinataires dans une valeur String. Utilisez une virgule entre les ID courriel lorsqu'il y a plusieurs destinataires.
  • to_cc. Indique les codes de courriel qui reçoivent une copie conforme du courriel. Utilisez une virgule entre les ID courriel lorsqu'il y a plusieurs destinataires de carte de crédit.
  • to_bcc. Indique les ID courriel qui reçoivent un Cci du courriel. Utilisez une virgule entre les ID courriel lorsqu'il y a plusieurs destinataires en Cci.

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

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

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

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

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

  • topic_ocid : Spécifie
  • title : Spécifie la ligne d'objet du message.

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

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

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

Ce paramètre est obligatoire.

Notes d'utilisation

Utilisez la procédure DBMS_CLOUD.CREATE_CREDENTIAL(credential_name, username, password) pour créer l'objet de données d'identification. Pour plus d'informations, voir 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 le service d'avis OCI, entrez 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;
/