You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Oracle存储过程中修改HTML实现邮件内容换行

解决Oracle存储过程邮件正文换行问题

要让邮件正文按期望格式换行,核心是在拼接正文内容时插入换行控制符,并确保邮件客户端能识别这些控制符,具体操作如下:

1. 插入换行控制符

Oracle中常用的换行符有两种:

  • CHR(10):仅换行(适配多数邮件客户端)
  • CHR(13)||CHR(10):回车+换行(兼容Windows系统客户端)

假设你原本是直接拼接字符串生成正文,修改代码时在每个字段行末尾添加换行符:

-- 原拼接代码(无换行)
-- v_body := 'Case id: ' || v_case_ids || ' Case name: ' || v_case_names || ' Case Category: ' || v_case_categories;

-- 修改后(添加换行)
v_body := 'Case id: ' || v_case_ids || CHR(13)||CHR(10)
       || 'Case name: ' || v_case_names || CHR(13)||CHR(10)
       || 'Case Category: ' || v_case_categories;

如果是通过游标循环生成多条记录,每次循环拼接后也需添加换行:

DECLARE
    v_body VARCHAR2(4000);
    CURSOR cur_cases IS
        SELECT case_id, case_name, case_category FROM your_case_table;
BEGIN
    v_body := '';
    FOR rec IN cur_cases LOOP
        v_body := v_body || 'Case id: ' || rec.case_id || CHR(13)||CHR(10)
               || 'Case name: ' || rec.case_name || CHR(13)||CHR(10)
               || 'Case Category: ' || rec.case_category || CHR(13)||CHR(10)||CHR(10); -- 额外空行分隔不同记录
    END LOOP;
    -- 后续发送邮件逻辑
END;
/

2. 确保邮件内容类型正确

使用UTL_MAIL发送邮件时,需指定content_type为text/plain,否则邮件客户端可能会把换行符解析为空格:

UTL_MAIL.SEND(
    sender     => 'your_email@domain.com',
    recipients => 'target_email@domain.com',
    subject    => 'Case Summary',
    message    => v_body,
    content_type => 'text/plain; charset=utf-8' -- 关键配置
);

测试调整

如果使用CHR(13)||CHR(10)后仍不生效,可尝试单独使用CHR(10),部分轻量邮件客户端仅识别单一换行符。

内容的提问来源于stack exchange,提问作者Kris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 07:18:25