如何在Oracle 11g的触发器中使用外部过程

如何在Oracle 11g的触发器中使用外部过程,oracle,stored-procedures,triggers,Oracle,Stored Procedures,Triggers,我想在发出insert命令时触发触发器 触发器将访问可随时更改的pl/sql文件 因此,问题是,如果我们设计触发器,我们如何确保这种动态事件发生。。与存储过程中一样,它不工作 我想,这应该对你有用 1) External Procedures 2) Execute Statement 如果我错了,请纠正我。。我正在研究外部程序,但从现在起我无法找到执行外部程序的方法 SQL> CREATE OR REPLACE FUNCTION Plstojavafac_func (N NUMBER)

我想在发出insert命令时触发触发器

触发器将访问可随时更改的pl/sql文件

因此,问题是,如果我们设计触发器,我们如何确保这种动态事件发生。。与存储过程中一样,它不工作

我想,这应该对你有用

1) External Procedures 
2) Execute Statement
如果我错了,请纠正我。。我正在研究外部程序,但从现在起我无法找到执行外部程序的方法

SQL> CREATE OR REPLACE FUNCTION Plstojavafac_func (N NUMBER) RETURN NUMBER AS
  2  LANGUAGE JAVA
  3  NAME 'Factorial.J_calcFactorial(int) return int';
  4  /
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

SQL> CREATE OR REPLACE TRIGGER student_after_insert
  2  AFTER INSERT
  3  ON student
  4  FOR EACH ROW
如何从这里调用过程。。。我的解释正确吗,请建议


谢谢。

请使用插入过程来处理数据,然后退出过程取消插入或成功插入,或者在触发器中处理数据,而不是在过程中进行插入。对不起,这是一个完全不成熟的想法。外部过程不运行PL/SQL,它们是可能用C编写的OS库的PL/SQL包装器。同样,Java存储过程也有所不同。如果您清楚地解释您的需求,这将是一个好主意:触发器将访问一个可以随时更改的pl/sql文件。这个文件做什么?它以什么方式是动态的?它必须是动态的原因很有趣,但可能与解决方案无关。一个清晰的声明如何。用户/应用程序在此表中插入一行。当这种情况发生时,我希望。。。。例如发送电子邮件、呼叫web服务、写入文件……可能的副本