我使用的是 oracle 10g 和 jdk 1.6
我想从 oracle Trigger 调用 java 类,因为我在下面尝试-
我的java类是-
public class DBTrigger
{
public static void logSal()
{
System.out.println("In java class");
}
}
我的预言机触发器是-
CREATE OR REPLACE TRIGGER sal_trig
AFTER UPDATE OF sal ON emp
FOR EACH ROW
WHEN (new.sal > 1.2 * old.sal)
CALL logSal();
但我可以调用它。
所以请给我一个建议。
最佳答案
什么 link说是
1) 创建Java类
CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED My_JavaClass AS
import java.io.*;
public class DBTrigger
{
public static void logSal()
{
System.out.println("In java class");
}
}
/
2) 创建一个存储过程(基本上是占位符)来调用您的 java 类
CREATE OR REPLACE PROCEDURE My_Javaclass_proc
AS LANGUAGE JAVA NAME 'DBTrigger.logSal()';
/
3) 创建触发器并调用此过程
CREATE OR REPLACE TRIGGER sal_trig
AFTER UPDATE OF sal ON emp
FOR EACH ROW
WHEN (new.sal > 1.2 * old.sal)
begin
My_Javaclass_proc;
end;
/
尝试使用上述步骤并分享结果。
关于java - 如何从 oracle 触发器中调用 java 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21177723/