email - 是否可以在 Oracle 中以事务方式发送电子邮件?

标签 email transactions oracle11g

我在很多情况下都会这样做:

... do some database action ...
COMMIT;
if ( commit succeeded without error ) {
    send an email
}

是否有任何简单的方法可以在 Oracle 11g 中自动以事务方式执行此操作?

我能想到的唯一方法是让事务将电子邮件插入表中,并有一个定期唤醒以检查表并发送其中的任何电子邮件的作业。

最佳答案

您可以使用DBMS_JOB包。当您使用DBMS_JOB提交作业时,该作业将在触发事务提交后才会运行。您的作业实际上在提交发生后几秒钟内异步发送电子邮件。

CREATE PROCEDURE do_something
AS
  l_jobno NUMBER;
BEGIN
  <<do something>>
  dbms_job.submit( l_jobno,
                   'BEGIN send_email; END;',
                   sysdate + interval '5' second );
  commit;
END;

CREATE PROCEDURE send_email 
AS
BEGIN
  <<send email>>
END;

关于email - 是否可以在 Oracle 中以事务方式发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9627337/

相关文章:

php - mysql_query ("ROLLBACK");不起作用

sql - 如何连接到oracle数据库:((

SQL*Plus 不执行 SQL Developer 执行的 SQL 脚本

email - 如何在 Magento 中禁用通知电子邮件?

php - 使用 jquery php 自动发送电子邮件通知

c# - 我想将电子邮件发送到本地网络中的某个 ID

.net - 使用默认电子邮件客户端发送文档

transactions - 在 Java EE 中调试事务

c# - 考虑线程和并发请求生成自动编号

sql - 用PLSQL中的另一个数字替换日期中的日期部分