无法通过trigger发送邮件

sywen 2018-08-31 04:53:31
从网上找到一个通过utl_smtp发送email的procedure,成功发送,但是我想通过一个表的insert动作调用该precedure,邮件发送失败。
求大神指导。
...全文
842 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 5 楼 sywen 的回复:
已解决,Trigger不能运行包含有execute之类的操作语句。

你这trigger里面也没有动态sql啊
sywen 2018-09-10
  • 打赏
  • 举报
回复
已解决,Trigger不能运行包含有execute之类的操作语句。
sywen 2018-09-03
  • 打赏
  • 举报
回复
用了after还是不行
  • 打赏
  • 举报
回复
好像没有REFERENCING NEW AS NEW OLD AS OLD这一句,
你可以在 下面 的send_mail前面,加一点东西,比如dbms_output或者放点东西 到测试表 测试你的触发器是否可行。
建议用after 触发
sywen 2018-09-01
  • 打赏
  • 举报
回复
网上有很多发送email的procedure,我copy了其中一个,测试发送是成功的
create or replace procedure Send_mail(mail_body varchar2) is
smtp_conn utl_smtp.connection;
user_name varchar2(20) := utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw('username@email.com')));
user_paswd varchar2(20) := utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw('password')));
lv_mail_header varchar2(200):='From:username@email.com'||utl_tcp.CRLF||
'To:sanoul@email.com'||utl_tcp.CRLF||
'Subject:Oracle数据库'||utl_tcp.CRLF;
lv_mail_content varchar2(2000);
begin
lv_mail_content := utl_tcp.CRLF||mail_body;

smtp_conn := utl_smtp.open_connection('smtp.email.com',25);
utl_smtp.helo(smtp_conn,'smtp.email.com');
utl_smtp.command(smtp_conn,'AUTH LOGIN');
utl_smtp.command(smtp_conn,user_name); --邮件用户名
utl_smtp.command(smtp_conn,user_paswd); --邮件密码
utl_smtp.mail(smtp_conn,'<username@email.com>'); --发件人邮箱
utl_smtp.rcpt(smtp_conn,'<sanoul@email.com>'); --收件人邮箱
utl_smtp.open_data(smtp_conn);
utl_smtp.write_data(smtp_conn,utl_raw.cast_to_raw(lv_mail_header));
utl_smtp.write_raw_data(smtp_conn,utl_raw.cast_to_raw(lv_mail_content));
utl_smtp.close_data(smtp_conn);
utl_smtp.quit(smtp_conn);
exception
when others then
utl_smtp.quit(smtp_conn);
end Send_mail;
/

以上procedure测试发送没问题,但是放到trigger里,发送不成功
CREATE OR REPLACE TRIGGER ZXW_AMT_TRIG
BEFORE INSERT
ON ZXW_AMT
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE

BEGIN
IF INSERTING THEN
SEND_MAIL('测试内容');
END IF;
END;
/
  • 打赏
  • 举报
回复
说的东西也忒少了

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧