Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal tenho uma base oracle xe local onde armazena dados transitórios ate que sejam validados e transferidos para minha base de produção.(tenho 11 bases xe, e 1 base em produção todas em lugares geograficamentes diferentes).
Minha pergunta é: É possivel eu criar um alerta nessa base para que quando minha tabela por exemplo atingir 50 registros ela me envie um email para verificar o ocorrido. Pois na minha operação essa tabela local ela é: armazenado, validado e transferido para base de produção e posteriormente apagado da base local.
Seria somente uma medida de controle para monitorar essa integração.
Obrigado
Uma das melhores soluções e voce criar um trigger contado os registro
ele chega maior N numero manda um email
ex abaixo para enviar email
--DECLARE
s_cabecalho VARCHAR2(32767);
s_corpo VARCHAR2(32767);
s_rodape VARCHAR2(32767);
v_cont NUMBER := 0;
v_test NUMBER;
-- Monta o cabeçalho do email.
s_cabecalho := '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<img src="http://www.novamerica.com.br/topo_email.jpg" complete="complete"/><br>';
s_cabecalho := s_cabecalho ||'<center> <h3><font face="Trebuchet MS"> Relação de JOB Gerado na data de hoje</font></h3></center>
<center> <br><br>
<font face="Trebuchet MS"> Identificamos JOB de Integração Folha Web foi gerado seguinte data.</font><br></center>
<center>';
-- Monta o Rodapé do Email.
s_rodape := '</table>
<center>
<br>
<font face="Trebuchet MS">
Obs.: Por favor verificar a importação no GT.
</font>
<br>
<br><br>
</center>
</body>
</html>';
s_corpo := '';
FOR r1 IN job LOOP
IF (v_cont = 0) THEN
s_corpo := s_corpo||'<table border="0">
<tr>
<td bgcolor="#006600"><font face="Trebuchet MS" color="#FFFFFF"> DATA: </font></td>
<td bgcolor="#006600"><font face="Trebuchet MS" color="#FFFFFF"> JOB: </font></td>
</tr>';
END IF;
s_corpo := s_corpo||'<tr>
<td bgcolor="#CCCCCC"><font face="Trebuchet MS" color="#000000"> '||r1.data||' </font></td>
<td bgcolor="#CCCCCC"><font face="Trebuchet MS" color="#000000"> '||r1.dia||' </font></td>
</tr>';
v_cont := v_cont + 1;
END LOOP;
v_cont := 0;
APPS.CS_UNA_MAIL_FILES@dbprod('portalna@novamerica.com.br'
,'jefferson@novamerica.com.br;'
,'Portal Na - Execução de carga automatica'
,s_cabecalho||s_corpo||s_rodape
,NULL
,NULL
);
COMMIT;
s_corpo := '';
END;
/
Solução 1
Uma trigger de after insert conta quantos registros tem na tabela e manda email caso exceda o limite
Solução 2
Um Job (scheduller) verifica aqtd de registros diariamente a noite e envia email caso exceda
Para envio de email o prórpio site da Oracle tem exemplos de envio (auteticado ou não)