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]

Responder a