程序发送电子邮件

时间:2019-12-17 11:00:03

标签: sql oracle plsql oracle-apex

我的过程不想运行,而在我的DBMS中却没有显示。

此过程应发送电子邮件。

我之前创建了相同的过程,虽然可以运行,但是与此同时我将其删除了。我认为这就是问题的原因,但是自今天早上以来我一直无法做到这一点。

create or replace PROCEDURE "EMAIL_SAMPLE"
(
    P_FROM IN VARCHAR2,
    P_TO IN VARCHAR2,
    P_SUBJECT IN VARCHAR2,
    P_BODY IN VARCHAR2
)
AS
BEGIN
apex_mail.send(
    P_FROM => 'x@gmail.com',
    P_TO => P_TO,
    P_SUBJECT => 'Contact',
    P_BODY => P_BODY);
END
EMAIL_SAMPLE;

错误:

ORA-24344: success with compilation error
ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_190200", line 592
ORA-06512: at "SYS.DBMS_SYS_SQL", line 1658
ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_190200", line 578
ORA-06512: at "APEX_190200.WWV_FLOW_DYNAMIC_EXEC", line 2057


3.         P_FROM IN VARCHAR2,
4.         P_TO IN VARCHAR2,
5.         P_SUBJECT IN VARCHAR2,
6.         P_BODY IN VARCHAR2
7.     )

感谢您的帮助。

情人节

1 个答案:

答案 0 :(得分:2)

您为apex_mail.send使用了错误的签名

您调用它时没有返回->过程 按照: https://docs.oracle.com/en/database/oracle/application-express/19.2/aeapi/SEND-Procedure-Signature-1.html#GUID-B1CD726B-EABE-4A9D-A7A4-3A973E84262D

签名是p_subj而不是p_subject

应该是:

BEGIN
apex_mail.send(
    P_FROM => 'me@example.com',
    P_TO => 'me@example.com',
    P_SUBJ => 'Contact',
    P_BODY => 'abcd');
END;
/