[英]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.