簡體   English   中英

如何從Oracle觸發器調用Java類?

[英]How to call java class from oracle trigger?

我正在使用oracle 10g和jdk 1.6

我想從oracle觸發器調用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();

但我可以打電話。

所以請給我一個建議。

鏈接說的是

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

嘗試使用上述步驟進行操作並共享結果。

如oracle docs 從數據庫觸發器調用Java中所述,您必須將Java方法發布為過程,並且必須在觸發器中調用該過程。

看一下上面鏈接中的示例或這里的其他示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM