Ensemble DBMS_CLOUD_NOTIFICATION

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

Aperçu de DBMS_CLOUD_NOTIFICATION

Décrit l'ensemble DBMS_CLOUD_NOTIFICATION.

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)

Sommaire des sous-programmes DBMS_CLOUD_NOTIFICATION

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

Sous-programme Description

SEND_DATA Procédure

Envoyer la sortie de l'interrogation SQL à un fournisseur.

SEND_MESSAGE Procédure

Envoyer un message texte à un fournisseur.

SEND_DATA Procédure

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. Indique 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édureCREATE_CREDENTIAL.

  • Pour le fournisseur email, notez ce qui suit :

    • L'utilisateur nécessite un point d'extrémité de connexion SMTP pour le serveur de transmission de messages afin d'obtenir smtp_host. L'utilisateur a également besoin d'un expéditeur approuvé SMTP et de ses données d'identification pour s'authentifier auprès du serveur de transmission de messages afin d'obtenir credential_name. La connexion SMTP doit être configurée et les données d'identification SMTP doivent être générées et approuvées.

    • La taille maximale des messages prise en charge lors de l'utilisation de DBMS_CLOUD_NOTIFICATION.SEND_DATA avec le fournisseur email est de 32k octets.

    • Vous ne pouvez utiliser DBMS_CLOUD_NOTIFICATION que pour les avis par courriel avec Autonomous AI Database version 19.21 et supérieure.

  • Pour le fournisseur msteams, l'utilisateur a besoin de l'application Microsoft Teams et d'un robot configuré dans celle-ci. L'application doit être publiée dans l'organisation et installée après avoir obtenu l'approbation de l'administrateur du centre d'administration. L'utilisateur doit également disposer de l'autorisation Files.ReadWrite.All et ChannelSettings.Read.All pour l'API Graph à partir de son portail Azure. Pour générer le jeton requis, l'utilisateur a besoin de bot_id dans le nom d'utilisateur et de bot_secret dans le mot de passe.

    La taille maximale de fichier prise en charge lors de l'utilisation de DBMS_CLOUD_NOTIFICATION.SEND_DATA pour Microsoft Teams est de 4 Mo.

  • Pour le fournisseur slack, la valeur username peut être n'importe quelle chaîne valide et password est le jeton de robot Slack.

Exemples

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

SEND_MESSAGE Procédure

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.

  • Fournisseur email : Les données d'identification sont le nom des données d'identification de l'expéditeur approuvé SMTP qui contiennent son nom d'utilisateur et son mot de passe.

  • Fournisseur msteams : les données d'identification doivent contenir la clé bot_id et la clé bot_secret dans username et password.

  • Fournisseur slack : username des données d'identification doit être "SLACK_TOKEN" et password est le jeton de robot Slack.

  • Fournisseur oci : Les données d'identification sont des données d'identification valides basées sur la clé de signature Oracle Cloud Infrastructure ou des données d'identification de principal de ressource.

Ce paramètre est obligatoire.

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

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 : Spécifie l'ID courriel de l'expéditeur approuvé dans une valeur String.
  • smtp_host : Spécifie le nom d'hôte SMTP dans une valeur String.
  • subject : Spécifie l'objet du courriel dans une valeur String. La taille maximale est de 100 caractères.
  • recipient : Spécifie les ID courriel des destinataires dans une valeur String. Utilisez une virgule entre les ID courriel lorsqu'il y a plusieurs destinataires.
  • to_cc : Spécifie les ID 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 : Spécifie 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 : Spécifie l'ID canal dans une valeur String.

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

  • channel. Spécifie l'ID canal dans une valeur String. Ce paramètre est obligatoire. 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".

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.

Note d'utilisation pour le fournisseur de courriel

Pour le fournisseur email, l'utilisateur nécessite un point d'extrémité de connexion SMTP pour le serveur de transmission de messages afin d'obtenir smtp_host. L'utilisateur a également besoin d'un expéditeur approuvé SMTP et de ses données d'identification pour s'authentifier auprès du serveur de transmission de messages afin d'obtenir credential_name. La connexion SMTP doit être configurée et les données d'identification SMTP doivent être générées et approuvées.

Note d'utilisation pour le fournisseur Msteams

Pour le fournisseur msteams, l'utilisateur a besoin de l'application Microsoft Teams et d'un robot configuré dans celle-ci. L'application doit être publiée dans l'organisation et installée après avoir obtenu l'approbation de l'administrateur du centre d'administration. L'utilisateur doit également disposer de l'autorisation Files.ReadWrite.All et ChannelSettings.Read.All pour l'API Graph à partir de son portail Azure. Pour générer le jeton requis, l'utilisateur a besoin de bot_id dans le nom d'utilisateur et de bot_secret dans le mot de passe.

Note d'utilisation pour le fournisseur Slack

Pour le fournisseur slack, la valeur username peut être n'importe quelle chaîne valide et password est le jeton de robot Slack.

Notes d'utilisation pour les avis OCI pour le fournisseur OCI

DBMS_CLOUD_NOTIFICATION prend en charge le fournisseur d'avis OCI. Voir Aperçu des avis pour plus de détails sur le fournisseur d'avis OCI.

  • Pour utiliser le fournisseur d'avis OCI, vous devez effectuer les opérations suivantes :
    • Créer un sujet. Voir Création d'un sujet pour plus de détails sur la création d'un sujet
    • Créez les abonnements requis. Voir Création d'un abonnement pour plus de détails sur la création d'un abonnement.
    • Après avoir créé les abonnements, confirmez-les. Les messages ne sont publiés que pour les abonnements confirmés. Pour plus de détails sur la confirmation des abonnements, voir Confirmation d'un abonnement.
  • L'instance de base de données de l'IA autonome, les données d'identification, si vous utilisez des données d'identification d'utilisateur et le sujet d'abonnement doivent tous se trouver dans la même région.
  • Notez les limitations suivantes :
    • Taille limite du message : La taille limite du message par demande est de 64 Ko. Les messages dépassant cette taille ne peuvent pas être envoyés ou traités dans une seule demande.
    • Limite de débit de transmission de messages : Il existe différentes limites de débit de transmission de messages en fonction du protocole utilisé.
      • Protocole email : la limite est de 10 messages par minute par point d'extrémité.

      Cette restriction peut avoir une incidence sur la vitesse à laquelle les messages peuvent être transmis et reçus.

    • Limite de transactions par minute (TPM) par location : Il existe une limite de TPM de 60 par sujet pour cette opération. Cette limite représente le nombre maximal de messages par minute pouvant être traités ou traités pour un sujet donné. Si cette limite est dépassée, les messages risquent de ne pas être traités ou traités à un rythme plus lent.

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

BEGIN
   DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE(
      provider          => 'oci',
      credential_name  => 'OCI$RESOURCE_PRINCIPAL',
      message          => 'Text message for you.',      
      params           => json_object('topic_ocid'  value 'oci********pa',   
      'title'  value 'Title for message subject' ));
END;
/