powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Отправка файла по почте.
6 сообщений из 6, страница 1 из 1
Отправка файла по почте.
    #39639538
Pugolovok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Подскажите пожалуйста.
Процедура компилиться с ошибкой и я не знаю как ее исправить(
Подскажите как быть, может можно как-то по другому написать.
Спасибо большое)

CREATE OR REPLACE PROCEDURE send_file_to_mail
(p_to IN VARCHAR2:='mail.net',
p_from IN VARCHAR2:='mail.net',
p_subject IN VARCHAR2:='Test Message',
p_attach_name IN VARCHAR2 :='file.txt',
p_attach_mime IN VARCHAR2 :='text/plain',
p_smtp_host IN VARCHAR2:='smtp.mail.net',
p_smtp_port IN NUMBER DEFAULT 25)
AS
l_mail_conn UTL_SMTP.connection;
l_boundary VARCHAR2(50) := '----=*#abc1234321cba#*=';
l_step PLS_INTEGER := 24573;
p_attach_clob CLOB;

CURSOR C1 IS
SELECT field1||field2 FROM table;

p_attach_clob C1%ROWTYPE;

BEGIN
LOOP
OPEN C1;
FETCH C1 INTO p_attach_clob;

EXIT WHEN C1%NOTFOUND;
END LOOP;

l_mail_conn := UTL_SMTP.open_connection(p_smtp_host, p_smtp_port);
UTL_SMTP.helo(l_mail_conn, p_smtp_host);
UTL_SMTP.mail(l_mail_conn, p_from);
UTL_SMTP.rcpt(l_mail_conn, p_to);
UTL_SMTP.open_data(l_mail_conn);
UTL_SMTP.write_data(l_mail_conn, 'Date: ' || TO_CHAR(SYSDATE, 'DD-MON-YYYY HH24:MI:SS') || UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'To: ' || p_to || UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'From: ' || p_from || UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'Subject: ' || p_subject || UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'Reply-To: ' || p_from || UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'MIME-Version: 1.0' || UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'Content-Type: multipart/mixed; boundary="' || l_boundary || '"' || UTL_TCP.crlf || UTL_TCP.crlf);
IF p_attach_name IS NOT NULL THEN
UTL_SMTP.write_data(l_mail_conn, '--' || l_boundary || UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'Content-Type: ' || p_attach_mime || '; name="' || p_attach_name || '"' || UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'Content-Disposition: attachment; filename="' || p_attach_name || '"' || UTL_TCP.crlf || UTL_TCP.crlf);
FOR i IN 0 .. TRUNC((DBMS_LOB.getlength(p_attach_clob) - 1 )/l_step)
LOOP
UTL_SMTP.write_data(l_mail_conn, DBMS_LOB.substr(p_attach_clob, l_step, i * l_step + 1));
END LOOP;
UTL_SMTP.write_data(l_mail_conn, UTL_TCP.crlf || UTL_TCP.crlf);
END IF;
UTL_SMTP.write_data(l_mail_conn, '--' || l_boundary || '--' || UTL_TCP.crlf);
UTL_SMTP.close_data(l_mail_conn);
UTL_SMTP.quit(l_mail_conn);
END;
...
Рейтинг: 0 / 0
Отправка файла по почте.
    #39639545
Pugolovok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения, ошибка при компиляции -
Error: PLS-00371: at most one declaration for 'P_ATTACH_CLOB' is permitted
Text: FETCH C1 INTO p_attach_clob;

Error: PLS-00371: at most one declaration for 'P_ATTACH_CLOB' is permitted
Line: 45
Text: FOR i IN 0 .. TRUNC((DBMS_LOB.getlength(p_attach_clob) - 1 )/l_step)
...
Рейтинг: 0 / 0
Отправка файла по почте.
    #39639550
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гугле. Переведется все

https://translate.google.com/#auto/ru/: at most one declaration for 'P_ATTACH_CLOB' is permitted
...
Рейтинг: 0 / 0
Отправка файла по почте.
    #39639552
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PugolovokПроцедура компилиться с ошибкой и я не знаю как ее исправить(Если ты не можешь понять, что написано в сообщении об ошибке, то может быть программирование - это не твоё?
...
Рейтинг: 0 / 0
Отправка файла по почте.
    #39639553
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PugolovokПрошу прощения, ошибка при компиляции -
Error: PLS-00371: at most one declaration for 'P_ATTACH_CLOB' is permitted
Text: FETCH C1 INTO p_attach_clob;Используй sqlplus.
...
Рейтинг: 0 / 0
Отправка файла по почте.
    #39639587
Бельфя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pugolovok,

авторCREATE OR REPLACE PROCEDURE send_file_to_mail
(p_to IN VARCHAR2:='mail.net',
p_from IN VARCHAR2:='mail.net',
p_subject IN VARCHAR2:='Test Message',
p_attach_name IN VARCHAR2 :='file.txt',
p_attach_mime IN VARCHAR2 :='text/plain',
p_smtp_host IN VARCHAR2:='smtp.mail.net',
p_smtp_port IN NUMBER DEFAULT 25)
AS
l_mail_conn UTL_SMTP.connection;
l_boundary VARCHAR2(50) := '----=*#abc1234321cba#*=';
l_step PLS_INTEGER := 24573;
p_attach_clob CLOB;

CURSOR C1 IS
SELECT field1||field2 FROM table;

p_attach_clob C1%ROWTYPE;
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Отправка файла по почте.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]