首页 > 解决方案 > 从 Oracle 触发器调用 Java 程序

问题描述

我会在这里尽量简洁。实际上,我有一段用 Java 编写的代码,用于向我们的客户发送短信。

我们使用 Oracle 10g 作为我们的数据库。我想要的只是

“每当在特定表中插入一行时,我想创建一个触发器,它可以调用我的 Java 程序并向其传递几个参数,例如客户编号、发票 ID、发票金额等。”

我试图找到某些教程,但大多数情况下我正在获取有关创建 java 存储过程以在数据库中进行某些更改的教程。我不想要那个。

我想要的只是有一种方法可以触发调用我的java程序并将一些参数传递给我的java程序的触发器。可能吗 ?

谁能给我提供一个代码来编写一个只用一些参数调用我的程序(比如说Test.java)的oracle触发器?我会很感激的

非常感谢

标签: javaoraclestored-procedurestriggers

解决方案


请参阅从数据库触发器调用 Java 存储过程

CREATE OR REPLACE PROCEDURE log_sal ( 
emp_id NUMBER,
 old_sal NUMBER,
 new_sal NUMBER
)
AS LANGUAGE JAVA
NAME 'DBTrigger.logSal(int, float, float)';

接下来,创建 sal_audit 表,如下所示:

CREATE TABLE sal_audit (
 empno NUMBER,
 oldsal NUMBER,
 newsal NUMBER
);

最后,创建数据库触发器,当工资增长超过 20% 时触发:

CREATE OR REPLACE TRIGGER sal_trig
AFTER UPDATE OF salary ON employees
FOR EACH ROW
WHEN (new.salary > 1.2 * old.salary)
CALL log_sal(:new.employee_id, :old.salary, :new.salary);

DBTrigger.logSal在此示例中的方法中定义您的代码

public class DBTrigger{
   public static void logSal (int empID, float oldSal, float newSal)
                                                    throws SQLException{

推荐阅读