从触发器调用sql脚本

时间:2014-11-26 16:58:16

标签: oracle sqlplus triggers

我在Windows 8中使用11g上的Oracle Data Miner。我想创建一个触发器,它会在执行时实例化一些sql脚本(即每当我尝试插入或更新记录时) 因此触发器将调用一些sql脚本。这样做的全部目的是在我在表中添加元组时执行一些过程。我无法获得正确的语法。 我尝试使用

create or replace trigger startClassification
after insert or update on comorbidity_scores
for each row
begin
@"C:\path\to\script\workflow_drop.sql";
@"C:\path\to\script\workflow_run.sql";
end;

但它不起作用。 什么是正确的语法?

2 个答案:

答案 0 :(得分:0)

使用UTL_FILE使用SQL脚本读取文件并使用DBMS_JOB执行它(如果脚本中只有一个语句,则使用EXECUTE IMMEDIETE

请注意,这是一个非常严重的后门(具有写访问权限的任何人都可以在您的数据库中运行查询!)。

答案 1 :(得分:0)

解决。 当我在Oracle Data Miner中参与我的工作流系统的数据库中添加记录时,问题是启动一些流程(这里是数据挖掘过程)。 我在PL / SQL过程中使用了DBMS_CHANGE_NOTIFICATION和DBMS_SCHEDULER。 另一方面,TRIGGERS是我独立撰写的。