1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
DECLARE
l_blob BLOB;
l_file UTL_FILE.FILE_TYPE;
l_buffer RAW(32767);
l_amount BINARY_INTEGER := 32767;
l_pos INTEGER := 1;
BEGIN
l_file := UTL_FILE.FOPEN('/home/oracle/pj', 'table.csv', 'rb');
BEGIN
UTL_FILE.GET_RAW(l_file, l_buffer, l_amount);
DBMS_LOB.CREATETEMPORARY(l_blob, TRUE);
DBMS_LOB.OPEN(l_blob, DBMS_LOB.LOB_READWRITE);
WHILE l_amount > 0 LOOP
DBMS_LOB.WRITE(l_blob, l_amount, l_pos, l_buffer);
l_pos := l_pos + l_amount;
UTL_FILE.GET_RAW(l_file, l_buffer, l_amount);
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
UTL_FILE.FCLOSE(l_file);
send_mail_bis_bis(p_to => 'toto@gmail.com',
p_from => 'toto@gmail.com',
p_subject => 'résulta',
p_text_msg => 'Maintenant reste la requête à bien la mettre dedans :) ',
p_attach_name => 'table.csv',
p_attach_mime => '/home/oracle/pj',
p_attach_clob => l_clob,
p_smtp_host => 'smtp.domaine.fr');
DBMS_LOB.CLOSE(l_blob);
DBMS_LOB.FREETEMPORARY(l_blob);
EXCEPTION
WHEN utl_smtp.Transient_Error OR utl_smtp.Permanent_Error THEN
raise_application_error(-20000, 'Unable to send mail: ' || sqlerrm);
END; |
Partager