Oracle PL/SQL向字符串添加更多字符
我希望能够在程序结束时创建一个小报告,并通过电子邮件发送给我自己 所以我有一个函数,它以字符串的形式返回它所做的事情:Oracle PL/SQL向字符串添加更多字符,oracle,plsql,Oracle,Plsql,我希望能够在程序结束时创建一个小报告,并通过电子邮件发送给我自己 所以我有一个函数,它以字符串的形式返回它所做的事情: create or replace function TEST_DELETE_ME RETURN VARCHAR2 IS COUNTS INT; begin SELECT COUNT(*) INTO COUNTS FROM MV; IF COUNTS = 0 THEN RETURN 'MV is empty'; ELSE RETURN
create or replace function TEST_DELETE_ME RETURN VARCHAR2
IS
COUNTS INT;
begin
SELECT COUNT(*) INTO COUNTS FROM MV;
IF COUNTS = 0 THEN
RETURN 'MV is empty';
ELSE
RETURN 'MV has been refreshed today';
END IF;
end;
/
然后我有一个过程调用这个函数并将返回的结果存储到varchar2变量中:
create or replace
PROCEDURE TEST2_DELETEME
authid current_user
IS
report_stats VARCHAR2(4000);
today varchar(30);
BEGIN
select to_char(sysdate, 'Month DD, YYYY') into today from dual;
report_stats := 'Load Statistics for: ' || today || CHR(13) || CHR(10);
report_stats := TEST_DELETE_ME;
report_stats := 'End of Report!' || CHR(13) || CHR(10);
utl_mail.send( sender => 'refresh_mvs@orcl.com',
recipients => 'angelina12@gmail.com',
subject => 'message from angelina', message => report_stats);
END;
当我执行此命令时:
执行TEST2\u DELETEME
我收到的电子邮件中只包含函数返回的内容:
MV is empty
如何将所有这些字符串组合成report\u stats
变量
如果你想知道什么是CHR(13)| | CHR(10)代码>是否
它添加了一个新行。尝试:
report_stats := 'Load Statistics for: ' || today || CHR(13) || CHR(10) ||
'End of Report!' || CHR(13) || CHR(10) || TEST_DELETE_ME;
您正在一次又一次地覆盖报表统计信息。要扩展它,请使用:
报告统计数据:=报告统计数据“随便什么” :=是赋值运算符而不是concat运算符(as+=)…每次调用report\u stats:=XX
时,都会覆盖现有值
试一试
输出:
"Load Statistics for: May 30, 2014
End of Report!
MV is empty"
我需要采用这种方法,因为在这个过程中,我将在许多不同的地方为这个字符串分配更多的字符。当我看到你的答案时,我意识到:)非常感谢!我知道我可以一直依靠你们。。。
create or replace
PROCEDURE TEST2_DELETEME
authid current_user
IS
report_stats VARCHAR2(4000);
today varchar(30);
BEGIN
select to_char(sysdate, 'Month DD, YYYY') into today from dual;
report_stats := report_stats || 'Load Statistics for: ' || today || CHR(13) || CHR(10);
report_stats := report_stats || 'End of Report!' || CHR(13) || CHR(10);
report_stats := report_stats || TEST_DELETE_ME;
utl_mail.send( sender => 'refresh_mvs@orcl.com',
recipients => 'angelina12@gmail.com',
subject => 'message from angelina', message => report_stats);
END;
"Load Statistics for: May 30, 2014
End of Report!
MV is empty"