Bom dia a todos1 Estou tentando enviar um arquivo csv por email e não consigo, esta dando o erro ora 21560 e não sei se o processo esta correto alguem pode me ajudar???
CREATE OR REPLACE PROCEDURE P_Envia_Nybot (V_REPORT IN VARCHAR2,V_CAMINHO_REPORT VARCHAR2) IS p_sender VARCHAR2(100); p_recipients VARCHAR2(4000); p_subject VARCHAR2(100) := 'Transaction Confirmation'; p_filename VARCHAR2(5000); p_blob blob; V_NOME_ARQUIVO VARCHAR(50); conn utl_smtp.connection; i NUMBER; len NUMBER; vFlob BFILE; vBlob BLOB; v_arquivo2 VARCHAR2(500); v_report_novo VARCHAR2(200); BEGIN UPDATE CIMASTER SET arquivo_NYBOT = (EMPTY_BLOB()) RETURN arquivo_NYBOT INTO vBlob; VFlob := BFILENAME('ORALOADNYBOT',RTRIM(v_report)); DBMS_LOB.FILEOPEN(vFlob,DBMS_LOB.FILE_READONLY); DBMS_LOB.LOADFROMFILE(vBlob,vFlob,DBMS_LOB.GETLENGTH(vFlob)); DBMS_LOB.FILECLOSE(vFlob); SELECT ARQUIVO_NYBOT INTO P_BLOB FROM CIMASTER; SELECT SENDER INTO P_SENDER FROM CIMASTER_EMAIL; conn := Demo_Mail.begin_mail( sender => p_sender, recipients => '[EMAIL PROTECTED]', subject => 'Transaction Confirmations', mime_type => Demo_Mail.MULTIPART_MIME_TYPE); Demo_Mail.begin_attachment( conn => conn, mime_type => 'TEXT/PLAIN', inline => TRUE, filename => v_REPORT, transfer_enc => 'base64'); -- split the Base64 encoded attachment into multiple lines i := 1; len := DBMS_LOB.getLength(p_blob); WHILE (i < len) LOOP IF(i + Demo_Mail.MAX_BASE64_LINE_WIDTH < len)THEN UTL_SMTP.Write_Raw_Data (conn , UTL_ENCODE.Base64_Encode( DBMS_LOB.SUBSTR(p_blob, Demo_Mail.MAX_BASE64_LINE_WIDTH, i))); ELSE UTL_SMTP.Write_Raw_Data (conn , UTL_ENCODE.Base64_Encode( DBMS_LOB.SUBSTR(p_blob, (len - i)+1, i))); END IF; UTL_SMTP.Write_Data(conn, UTL_TCP.CRLF); i := i + Demo_Mail.MAX_BASE64_LINE_WIDTH; END LOOP; Demo_Mail.end_attachment(conn => conn); Demo_Mail.attach_text( conn => conn, data => NULL, mime_type => 'text/html'); Demo_Mail.end_mail( conn => conn ); /* i := 1; len := DBMS_LOB.getLength(p_blob); WHILE (i < len) LOOP IF(i + Demo_Mail.MAX_BASE64_LINE_WIDTH < len)THEN UTL_SMTP.Write_Raw_Data (conn , UTL_ENCODE.Base64_Encode( DBMS_LOB.SUBSTR(p_blob, Demo_Mail.MAX_BASE64_LINE_WIDTH, i))); ELSE UTL_SMTP.Write_Raw_Data (conn , UTL_ENCODE.Base64_Encode( DBMS_LOB.SUBSTR(p_blob, (len - i)+1, i))); END IF; UTL_SMTP.Write_Data(conn, UTL_TCP.CRLF); i := i + Demo_Mail.MAX_BASE64_LINE_WIDTH; END LOOP; Demo_Mail.end_attachment(conn => conn); Demo_Mail.attach_text( conn => conn, data => NULL, mime_type => 'text/html'); Demo_Mail.end_mail( conn => conn )*/ END; / [As partes desta mensagem que não continham texto foram removidas]