declare
conn UTL_SMTP.connection;
L_retorno varchar2(2000);
type t_duende is record (
Nome varchar2(2000),
email varchar2(2000)
);
type tt_duende is table of t_duende index by binary_integer;
g_duendes tt_duende;
g_duendes_ocupados tt_duende;
L_duende t_duende;
L_idx1 Number;
L_idx2 Number;
L_contador number;
begin
---------------------------------------------------------
L_duende.nome := 'gentleman';
L_duende.email := 'gentleman@gmail.com';
g_duendes(NVL(g_duendes.last,0)+1) := L_duende;
---------------------------------------------------------
L_duende.nome := 'lady';
L_duende.email := 'lady@gmail.com';
g_duendes(NVL(g_duendes.last,0)+1) := L_duende;
---------------------------------------------------------
---------------------------------------------------------
/*if mod(g_duendes.count, 2) != 0 Then
raise_application_error(-20749, 'O numero de participantes não é par!');
End if;*/
L_contador := G_duendes.first;
While L_contador is not null
Loop
-- indice 1
L_idx1 := L_contador;
-- indice 2
Loop
L_idx2 := round(dbms_random.value(1,g_duendes.count));
while g_duendes_ocupados.exists(L_idx2)
Loop
L_idx2 := G_duendes.next(L_idx2);
if L_idx2 is null then
L_idx2 := G_duendes.first;
end if;
end loop;
---------------------------------------
Exit when L_idx1 != L_idx2
AND not g_duendes_ocupados.exists(L_idx2)
;
end loop;
g_duendes_ocupados(L_idx2) := g_duendes(L_idx1);
conn :=
###########.begin_mail (
sender => 'PaiNatal@glintt.com',
recipients => G_duendes(L_idx1).email,
cc => '',
subject => 'Duende ajudante do SGICM',
priority => 1,
mime_type => ###########.multipart_mime_type);
###########.begin_attachment (conn => conn,
mime_type => 'text/html',
inline => FALSE,
filename => NULL,
transfer_enc => NULL);
###########.write_mb_text (conn => conn,
MESSAGE =>
'O teu amigo secreto para o jantar de natal do SGICM é
"'||g_duendes(L_idx2).nome||'".
O valor da prenda deve rondar os 5 euros.
A prenda deve vir identificada com o nome da pessoa para o qual se destina para o Pai Natal na se enganar que o coitadinho está velhinho.
Por questões de burocracia e secretismo preciso que confirmem a recepção deste email sem reenviarem o amigo secreto para gloriagoncalves@glintt.com
Um feliz natal e bom jantar SGICM
"O script de geração sorteio pode ser consultado em http://odesenvolvimento.blogspot.pt/"
');
###########.end_attachment (conn => conn, LAST => FALSE);
L_retorno := ###########.end_mail (conn => conn);
----------------------------------------------------
L_contador := G_duendes.next(L_contador);
end loop;
end;
sexta-feira, 25 de novembro de 2016
Subscrever:
Comentários (Atom)