如何从Oracle触发器调用Java类? [英] How to call java class from oracle trigger?

查看:67
本文介绍了如何从Oracle触发器调用Java类?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用oracle 10g和jdk 1.6

I am use oracle 10g and jdk 1.6

我想从oracle触发器调用java类,因为我在下面尝试尝试

I want to call java class from oracle Trigger for that I am tries below-

我的java类是-

public class DBTrigger 
{
    public static void logSal()
    {
     System.out.println("In java class");
    }
}

我的oracle触发器是-

and my oracle trigger is-

CREATE OR REPLACE TRIGGER sal_trig
AFTER UPDATE OF sal ON emp
FOR EACH ROW
WHEN (new.sal > 1.2 * old.sal)
CALL logSal();

但是我可以叫它.

所以请给我一个建议.

推荐答案

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类

2) Create a stored procedure (a place holder basically) to call your java class

CREATE OR REPLACE PROCEDURE My_Javaclass_proc
AS LANGUAGE JAVA NAME 'DBTrigger.logSal()';
/

3)创建触发器并调用此过程

3) Create the trigger and call this procedure

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;
/

尝试使用上述步骤进行操作并共享结果.

Try to do using above steps and share the results.

这篇关于如何从Oracle触发器调用Java类?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆