Как я могу упростить тело электронной почты, используя utl_smtp.write_data - PullRequest
0 голосов
/ 10 октября 2011

Я пытаюсь отправить вывод запроса по почте. Я использую следующую команду.

FOR i IN emp_cur LOOP
   e_fullname := i.full_name;
   UTL_SMTP.WRITE_DATA(v_connection_handle,
                        e_fullname || ' - ' || i.ID ||' - ' || i.location_city ||' - ' || i.job ||' - ' || i.supervisor_name || UTL_TCP.CRLF|| UTL_TCP.CRLF);

  END LOOP;

Вывод выглядит так:

Pandyan - 12312 - Williamsburg - Developer - Pieterson

Bowaris - 98615 - Ohio - Spec - Pieterson

Perry, Steven W (Steve) - 11111 - Ohio - Analyst - Pieterson

Praveerarajan - 44444 - Williamsburg - Engineer - Pieterson

Теперь, как мне сделать так, чтобы мой вывод выглядел хорошо? Таким образом, все имена emp имеют правильный интервал, а идентификаторы отображаются один под другим в виде прямой линии, и то же самое для остальных столбцов.

Спасибо Venkat

1 Ответ

0 голосов
/ 10 октября 2011

Используйте функции RPAD и LPAD, чтобы столбцы занимали одинаковое пространство независимо от длины содержимого.Используйте RPAD для выравнивания строк слева и LPAD для выравнивания чисел справа.

Например.

rpad(e_fullname, 15) || ' - ' || lpad( i.ID, 10) ||' - ' || rpad(i.location_city, 30) ||' - ' || rpad(i.job,10) ||' - ' || rpad(i.supervisor_name,15) || UTL_TCP.CRLF|| UTL_TCP.CRLF);

Символ заполнения по умолчанию - это пробел, что, вероятно, и является тем, что вам нужно в этом случае.

Конечно, это только выстроит все в ряд шрифтом фиксированного размера(как Курьер Новый).Если в вашем электронном письме используется какой-либо легко читаемый шрифт, например, Arial, у вас проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...