Pacote DBMS_CLOUD_NOTIFICATION
O pacote DBMS_CLOUD_NOTIFICATION
permite que você envie mensagens ou a saída de uma consulta SQL para um provedor.
- DBMS_CLOUD_NOTIFICATION Visão Geral
Descreve o pacoteDBMS_CLOUD_NOTIFICATION
. - Resumo de Subprogramas DBMS_CLOUD_NOTIFICATION
Esta tabela resume os subprogramas incluídos no pacote.
Tópico principal: Referência de Pacote Fornecida pelo Autonomous Database
DBMS_CLOUD_NOTIFICATION Visão Geral
Descreve o pacote DBMS_CLOUD_NOTIFICATION
.
Os provedores suportados com DBMS_CLOUD_NOTIFICATION
são: E-mail, Microsoft Teams, OCI Notifications (ONS) e Slack.
Quando você usa o serviço OCI Notifications com o pacote DBMS_CLOUD_NOTIFICATION
, só há suporte para o procedimento DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE
(o procedimento DBMS_CLOUD_NOTIFICATION.SEND_DATA
não é suportado)
Tópico principal: Pacote DBMS_CLOUD_NOTIFICATION
Resumo de Subprogramas DBMS_CLOUD_NOTIFICATION
Esta tabela resume os subprogramas incluídos no pacote.
Subprograma | Descrição |
---|---|
Enviar a saída da consulta SQL a um provedor. |
|
Enviar mensagem de texto a um profissional de saúde. |
- Procedimento SEND_DATA
O procedimentoSEND_DATA
envia os resultados da consulta especificada para um provedor. - Procedimento SEND_MESSAGE
O procedimento envia uma mensagem de texto a um provedor.
Tópico principal: Pacote DBMS_CLOUD_NOTIFICATION
Procedimento SEND_DATA
O procedimento SEND_DATA
envia os resultados da consulta especificada para um provedor.
Sintaxe
DBMS_CLOUD_NOTIFICATION.SEND_DATA
(
provider IN VARCHAR2,
credential_name IN VARCHAR2,
query IN CLOB,
params IN CLOB
);
Parâmetros
Parâmetro | Descrição |
---|---|
|
Especifica o provedor. Os valores válidos são: ' Este parâmetro é obrigatório. |
|
O nome do objeto de credencial para acessar o provedor. Para o provedor de e-mail, a credencial é o nome da credencial do remetente aprovado pelo SMTP que contém seu nome de usuário e senha. Para o provedor msteams, a credencial é o nome da credencial. Para o provedor Slack, o nome de usuário da credencial deve ser Este parâmetro é obrigatório. |
|
Especifica a consulta SQL a ser executada. Os resultados são enviados ao profissional de saúde. Este parâmetro é obrigatório. |
|
Especifica parâmetros específicos para o Para o tipo de provedor
Para o tipo de provedor
Para o tipo de provedor
Este parâmetro é obrigatório. |
Observações de Uso
-
Use o procedimento
DBMS_CLOUD.CREATE_CREDENTIAL
(credential_name
,username
epassword)
para criar o objeto de credencial.Consulte CREATE_CREDENTIAL Procedimento para obter mais informações.
-
Para o provedor
email
, observe o seguinte:-
O usuário requer um ponto final de conexão SMTP para que o servidor do serviço Email Delivery obtenha
smtp_host
. O usuário também requer um remetente aprovado pelo SMTP e suas credenciais para autenticação no servidor do Email Delivery a fim de obter ocredential_name
. A conexão SMTP deve ser configurada e as credenciais SMTP devem ser geradas e aprovadas. -
O tamanho máximo da mensagem suportado ao usar
DBMS_CLOUD_NOTIFICATION.SEND_DATA
com o provedoremail
é 32k bytes. -
Você só pode usar
DBMS_CLOUD_NOTIFICATION
para notificações de e-mail com o Autonomous Database versão 19.21 e posterior.
-
-
Para o provedor
msteams
, o usuário requer o Aplicativo Microsoft Teams e um bot configurado nele. O aplicativo precisa ser publicado para a organização e instalado após a aprovação do administrador do centro de administração. O usuário também requer acesso às permissõesFiles.ReadWrite.All
eChannelSettings.Read.All
para a API de Gráfico no Portal do Azure. Para gerar o token necessário, o usuário requerbot_id
no nome de usuário ebot_secret
na senha.O tamanho máximo de arquivo suportado ao usar
DBMS_CLOUD_NOTIFICATION.SEND_DATA
para o Microsoft Teams é de 4 MB. - Para o provedor
slack
, o valorusername
pode ser qualquer string válida epassword
é o token de bot do Slack.
Exemplos
Envie a saída SQL com o provedor 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;
/
Envie a saída SQL com o provedor 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;
/
Envie a saída SQL com o provedor 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;
/
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_NOTIFICATION
Procedimento SEND_MESSAGE
O procedimento envia uma mensagem de texto para um profissional de saúde.
Sintaxe
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE
(
provider IN VARCHAR2,
credential_name IN VARCHAR2,
message IN CLOB,
params IN CLOB
);
Parâmetros
Parâmetro | Descrição |
---|---|
|
Especifica o provedor. Os valores válidos são: ' Este parâmetro é obrigatório. |
|
O nome do objeto de credencial para acessar o provedor.
Este parâmetro é obrigatório. Use o procedimento |
|
Especifica o texto da mensagem. Este parâmetro é obrigatório. |
|
Especifica parâmetros específicos para o Para o tipo de provedor
Para o tipo de provedor
Para o tipo de provedor
Para o provedor OCI Notifications com o tipo
Com o provedor
|
Nota de Uso para Provedor de E-mail
Para o provedor email
, o usuário requer um ponto final de conexão SMTP para que o servidor do serviço Email Delivery obtenha smtp_host
. O usuário também requer um remetente aprovado pelo SMTP e suas credenciais para autenticação no servidor do Email Delivery a fim de obter o credential_name
. A conexão SMTP deve ser configurada e as credenciais SMTP devem ser geradas e aprovadas.
Nota de uso para o provedor Msteams
Para o provedor msteams
, o usuário requer o Aplicativo Microsoft Teams e um bot configurado nele. O aplicativo precisa ser publicado para a organização e instalado após a aprovação do administrador do centro de administração. O usuário também requer acesso às permissões Files.ReadWrite.All
e ChannelSettings.Read.All
para a API de Gráfico no Portal do Azure. Para gerar o token necessário, o usuário requer bot_id
no nome de usuário e bot_secret
na senha.
Observação de Uso do Provedor do Slack
Para o provedor slack
, o valor username
pode ser qualquer string válida e password
é o token de bot do Slack.
Observações de Uso das Notificações do OCI Provider
O DBMS_CLOUD_NOTIFICATION
suporta o provedor do OCI Notifications. Consulte Visão Geral do Serviço Notifications para obter detalhes sobre o provedor do OCI Notifications.
- Para usar o provedor do OCI Notifications, faça o seguinte:
- Criar um tópico. Consulte Criando um Tópico para obter detalhes sobre como criar um tópico
- Crie as assinaturas necessárias. Consulte Criando uma Assinatura para obter detalhes sobre a criação de uma assinatura.
- Depois de criar as assinaturas, confirme-as. As mensagens só são publicadas em assinaturas confirmadas. Consulte Confirmando uma Assinatura para obter detalhes sobre a confirmação de assinaturas.
- A instância do Autonomous Database, a credencial, se você estiver usando credenciais de usuário e o tópico de assinatura deverão estar localizados na mesma região.
- Observe as seguintes limitações:
- Limite de Tamanho da Mensagem: O limite de tamanho da mensagem por solicitação é de 64 KB. Mensagens que excedem este tamanho não podem ser enviadas ou processadas em uma única solicitação.
- Limite de Taxa de Entrega de Mensagens: Existem diferentes limites de taxa de entrega de mensagens, dependendo do protocolo usado.
- Protocolo
email
: o limite é de 10 mensagens por minuto por ponto final.
Esta restrição pode afetar a velocidade com que as mensagens podem ser transmitidas e recebidas.
- Protocolo
- Limite de Transações por Minuto (TPM) por Tenancy: Há um limite de TPM de 60 por tópico para esta operação. Esse limite representa o número máximo de mensagens por minuto que podem ser processadas ou tratadas para um determinado tópico. Exceder esse limite pode resultar em mensagens não sendo processadas ou processadas em uma taxa mais lenta.
Exemplos
Envie uma mensagem de texto com o provedor 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;
/
Envie uma mensagem de texto com o provedor 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;
/
Envie uma mensagem de texto com o provedor 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 Database.',
params => json_object('channel' value 'C0....08'));
END;
/
Envie uma mensagem de texto com o OCI Notifications, digite o provedor 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;
/
Tópico principal: Resumo de Subprogramas DBMS_CLOUD_NOTIFICATION