从Oracle触发器调用Java程序

从Oracle触发器调用Java程序,java,oracle,stored-procedures,triggers,Java,Oracle,Stored Procedures,Triggers,在这里我将尽量简明扼要。实际上,我有一段用Java编写的代码,用于向客户发送短信 我们使用Oracle 10g作为我们的数据库。我想要的就是这个 “每当在特定表中插入一行时,我想创建一个触发器,该触发器可以调用我的Java程序,并向它传递几个参数,例如客户号、发票Id、发票金额等。” 我试图找到一些教程,但主要是关于创建java存储过程以对数据库进行某些更改的教程。我不想那样 我想要的就是有一种方法,通过它我可以触发一个触发器,调用我的java程序,并将一些参数传递给我的java程序。可能吗 有

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

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

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

我试图找到一些教程,但主要是关于创建java存储过程以对数据库进行某些更改的教程。我不想那样

我想要的就是有一种方法,通过它我可以触发一个触发器,调用我的java程序,并将一些参数传递给我的java程序。可能吗

有谁能给我提供一个代码来编写一个oracle触发器,它只调用我的程序(比如Test.java),并带有一些参数??我会非常棒的

非常感谢

参见

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

最后,创建数据库触发器,当加薪超过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
方法中定义代码


你的意思是DBTrigger将是我的javaClass名称,logSal将是我java程序中的方法?我在表“class DBTrigger不存在。触发器执行期间出错”中插入行后出现此错误。我应该将类文件保存在特定的位置吗?我想我错过了loadjava步骤。然而。现在我得到了这个错误ORA-00932:不一致的数据类型:在参数位置1处需要一个Java类型,某些Oracle值可以转换为该类型else@Farhan我建议您在拥有SMS网关后,使用代码打开一个新问题,这在纯PL/SQL中使用内置的PL/SQL UTL_HTTP库非常容易做到。例如@JefferyKemp发布了clicksend的实现,我相信您可以根据自己的需要进行调整。
CREATE TABLE sal_audit (
 empno NUMBER,
 oldsal NUMBER,
 newsal NUMBER
);
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);
public class DBTrigger{
   public static void logSal (int empID, float oldSal, float newSal)
                                                    throws SQLException{