java - 如何从 oracle 触发器中调用 java 类?

标签 java oracle triggers

我使用的是 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/

相关文章:

mysql - 如果mysql中某列是某个值,如何禁止更新表?

angularjs - 单击表格行以触发 Angularjs 中的复选框单击

java - 在 Spring 3 中执行通用站点初始化的单个类

java - 需要从我的应用程序进行非阻塞/异步方法调用

java - 如果用户不知道以前的密码,是否可以通过 Firebase 恢复密码?

database - oracle新创建的用户权限问题?

java - 图片上传问题

MySQL 5.5.30 级联触发器不起作用

java - 如何在 Android 应用程序的两个模块之间传递变量(本地语言)?

java - svnkit + ssh 身份验证错误 (E170001)