【问题标题】:How to get output of SQL select statement into text如何将 SQL select 语句的输出转换为文本
【发布时间】:2015-12-29 13:58:48
【问题描述】:

我正在尝试将 SQL 选择语句的结果输​​出到电子邮件中,最好是文本。我正在使用 PL/SQL。我已经有一个电子邮件功能,我可以在其中指定邮件正文。但是,我不确定将 SQL 选择语句结果放入消息正文中的任意行数的最佳方法。

例如,我可能想做select name, data from my_table;,然后能够将其存储到我可以包含在电子邮件中的 VARCHAR2 变量中。

【问题讨论】:

  • 假设您已经从 PL/SQL 过程发送电子邮件,为什么保存结果的变量的处理与消息正文的其余部分有任何不同?

标签: sql oracle stored-procedures plsql oracle10g


【解决方案1】:
declare
    body varchar2(32000) := '';
begin
    for row in (select name, data from my_table) loop
        body := body || ' ' || row.name || ' ' || to_char(row.data) || chr(13)||chr(10) ; /*chr(13)||chr(10) is line feed carriage return*/
    end loop;
    p_email(body);
    exception
        when NO_DATA_FOUND then
            p_email('no data found');
        when others then
            raise;
end;

【讨论】:

  • 在 to_char(row.data) 和 chr(13) 之间出现以下错误: Error(108,69): PLS-00103: Encountered the symbol "CHR" when expecting 以下之一: . ( * % & = - + ; at in is mod 余数 not rem or != or ~= >= and or like like2 like4 likec between || 成员submultiset 符号“.”被替换为“CHR”以继续。
  • @JakeWasdin 抱歉错过了一个 concat (||) 运算符,现在它应该可以工作了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-19
  • 1970-01-01
  • 2018-09-17
  • 1970-01-01
相关资源
最近更新 更多