使用PL/SQL的Java作业Oracle

问题描述:

我有一个Oracle PL/SQL作业,每周运行4天,时间为15到15分钟。这项工作是检查源表是否为空,如果它不是空的,它将插入到另一个表中。当作业结束一封电子邮件时,它会发送到检查结果。由于业务规范,我必须发送附件中的Excel文件,并将该电子邮件与表的结果集一起发送。我实现了一个Java项目来解析表格并将数据插入到文件中。使用PL/SQL的Java作业Oracle

我的问题是如何创建一个作业来同时运行PL/SQL作业和Java项目?

+0

'ScheduledExecutorService'和'Producer-Consumer problem'可以帮助你解决这个问题。 – Azodious

+0

请问您是否可以更具特色?我的问题是我不知道如何使用Java项目创建/集成DBMS_SCHEDULER Oracle Job。你能以这种方式帮助我吗? –

+0

您可以通过将dbms_scheduler作业与Java项目集成来更具体地了解您的意思吗? Java可以调用过程,PL/SQL可以发送电子邮件。什么是不正确的工作? –

有四种方法。

  1. 使用oracle schedular。
  2. 在插入时使用oracle触发器。
  3. 使用 “的crond” 或 “批量处理”
  4. 让其他外部java程序使用事务
+0

在评论区添加您的回复。没有回答。 – Azodious

+0

我没有批处理。我使用Oracle调度程序创建了一份工作,并且我有一个外部Java项目,我想将其集成到我的工作中,或者与我的工作集成起来运行。 –

+0

@Abodious:对不起,这是我的第一个Stackovetflow。下次我会写评论。 – likemilk

有2路::

既可以使用基于数据库的调度DBMS_SCHEDULER运行PL/SQL工作,并从这个工作做完整的事情。

另一种使用基于Java的调度程序和Java程序的方法使用Callable语句调用您的PI/SQL过程并完成写入该文件的过程。

+0

我使用Oracle调度程序创建了自己的Job,但我无法完成该作业中的全部工作。我想将这个部分与java项目集成到一个工作中。 –

+0

DBMS_SCHEDULER具有邮件功能并且还使用UTL_FILE,您可以直接从DB Job写入文件或导出为CSV,为什么需要Java程序。 https://oracle-base.com/articles/11g/scheduler-enhancements-11gr2 –

+0

下面是从PL/SQL中将结果集写入Excel的方法 –

您应该使用调度程序并将PL/SQL作业包含在其中。我已经使用Quartz这是非常好的