1
我有一個用於發送郵件的發送郵件過程。我將編寫過程從sql中獲取值,並將值傳遞給send_mail過程以接收郵件,但是當我嘗試發送1000個記錄時,它會給出數字或值錯誤。有人可以幫助我重寫我的send_mail過程來發送CLOB,以便大小不會是一個約束。 下面給出的是我的程序。在PLSQL中處理CLOB數據的郵件過程
PROCEDURE send_mail (SUBJECT IN CLOB,MAIL_HEADER IN CLOB)
IS
l_connection utl_smtp.connection;
p_smtp_hostname varchar2(200) := 'localhost';
p_smtp_portnum varchar2(200) := '25';
p_from varchar2(200) := '[email protected]';
p_to VARCHAR2(400) := 'to[email protected]';
l_temp CLOB;
p_env VARCHAR2(3000) := '';
BEGIN
l_connection := utl_smtp.open_connection(p_smtp_hostname, p_smtp_portnum );
utl_smtp.helo(l_connection, p_smtp_hostname);
utl_smtp.mail(l_connection, p_from);
utl_smtp.rcpt(l_connection, p_to);
utl_smtp.open_data(l_connection);
l_temp := 'MIME-Version: 2.0' || chr(13) || chr(10);
l_temp := l_temp || 'To: ' || p_to || chr(13) || chr(10);
l_temp := l_temp || 'From: ' || p_from || chr(13) || chr(10);
l_temp := l_temp || 'Subject: '|| SUBJECT || p_env || chr(13) || chr(10);
l_temp := l_temp || 'Reply-To: ' || p_to || chr(13) || chr(10);
l_temp := l_temp || 'Content-type: text/html;' ||
chr(13) || chr(10) || chr(13) || chr(10);
utl_smtp.write_data(l_connection, l_temp);
utl_smtp.write_data(l_connection, MAIL_HEADER);
utl_smtp.close_data(l_connection);
utl_smtp.quit(l_connection);
EXCEPTION
WHEN OTHERS THEN
RAISE;
END send_mail;
我在PLSQL是新的。你可以讓我知道我應該在哪裏實施這個。 – jabbars
@jabbars檢查更新的答案 –
當我試圖從第一個程序調用我的sen_mail過程時,仍然出現數字或值錯誤 – jabbars