oracle
里一个表插入一条数据,提交后,如何让外部程序收到这个消息?
1、过程中:...
declare
myexcept
exception;
inserted_count1
number;
inserted_count2
number;
...
begin
insert into table
values(...);
inserted_count1
:= sql%rowcount;
...
--可以判断inserted_count1是否大于0来确定是否插入了数据
commit;
inserted_count2
:= sql%rowcount; --这里inserted_count2为0
...
--事实上,这里一定是提交成功才会执行,否则会跳到exception段
yourprocess(yourpara);--调用你自己的过程或语句跟别的过程通信
...
exception
when others then
---你可以根据sqlcode自己去查具体的提交失败原因
...
yourprocess_for_fail(yourpara) --调用你自己的过程跟别的过程通信
...
end;
2、直接外部操作,建触发器:
create or replace
trigger table after insert for each row
...
begin
...
yourprocess(yourprara);
...
end;
当然,2的方法这只能更总到提交前,
如果要监视提交后状态,你可以在操作表建立标志位或专门建个表,操作表发生变化就通过trigger更新变化信息到状态表,扫描状态表就知道是否
commit;成功了
我想这位用户应该通过trigger
来调用java source来实现插入数据后来通知外部程序来做一些事情:
使用java
source的例子如下:
SQL> create or
replace and compile java source named HelloWorld
2 as
3 public class
HelloWorld {
4 public static
void db_run (){
5
System.out.println("Hello World");
6 }
7 }
8 /
Java created.
SQL> create or
replace procedure run_helloworld
2 as language
java
3 name
'HelloWorld.db_run()';
4 /
Procedure
created.
SQL> set
serveroutput on size 5000
SQL> call
dbms_java.set_output(5000) ;
Call completed.
SQL>
SQL> exec
run_helloworld ;
Hello World
PL/SQL procedure
successfully completed.
上面是调用HelloWorld的例
子,可以修改HelloWorld方法,然后在触发器里面调用以实现用户的要求!
分享到:
相关推荐
在Oracle中调用外部程序,主要有以下几种方式: 1. **DBMS_SCHEDULER**: Oracle的DBMS_SCHEDULER包提供了一个功能强大的任务调度器,可以安排存储过程、PL/SQL块以及外部程序的运行。你可以创建一个调度作业,指定...
这个设计模式通常用于实时的数据处理或者系统间的集成,比如将数据库中的事件通知给外部系统。 首先,让我们详细解释一下触发器的工作原理。在Oracle中,触发器由CREATE TRIGGER语句定义,它可以监听表上的特定操作...
23. **外部程序触发**: Oracle的DBMS_SCHEDULER可安排外部程序执行,如批处理、文件传输等。 24. **备份与恢复**: Oracle的RMAN(恢复管理器)用于数据库备份和恢复,支持完整备份、增量备份和归档日志恢复。 25...
本文旨在深入解析Oracle触发器中的Before和After两种触发时机,以及它们在数据库管理和维护中的具体应用。 #### 触发器概述 触发器类似于过程和函数,具有声明、执行和异常处理的部分,但其独特之处在于由特定事件...
"Oracle Form guide (Outside Training)"很显然是一份关于如何使用Oracle Forms进行外部培训的指南。这份指南可能包含了从基础知识到高级技巧的全方位教程,旨在帮助用户理解和掌握Oracle Forms的开发和应用。 ...
6. **集成能力**:易于与其他Oracle产品(如Oracle E-Business Suite)和其他第三方应用程序集成。 #### 三、Oracle工作流的应用场景 1. **审批流程**:适用于各种审批场景,如采购申请、请假审批等。 2. **订单...
整个系统的工作流程可能是这样的:用户在Swing界面填写短信内容和收件人,点击发送按钮后,NewJFrame.java会触发Cmd001_y.java中的发送命令,该命令通过JDBC连接Oracle数据库,存储短信信息。同时,GetThread.java...
3. **事件驱动**:BPEL流程可以响应外部事件,如消息的接收或定时器触发,从而启动或更改流程执行。 4. **异常处理**:内置的错误处理机制允许流程在出现错误时进行恢复或者通知,确保业务流程的健壮性。 5. **监控...
1.3. Open Interface模式:这种模式允许外部系统通过预定义的数据格式和程序调用来与Oracle EBS交互。通常,Open Interfaces是基于PL/SQL的程序包,它们接收XML或平文件格式的数据,然后将其转化为内部EBS格式。 ...
当用户在Forms中执行某些操作,如插入、更新或删除记录时,可以触发预定义的用户出口,调用事先编写好的PL/SQL代码或外部程序,实现更精细的控制。 建立用户出口通常包括以下几个步骤: 1. **规划出口事件**:首先...
它们可以在数据更改前或更改后运行,以执行额外的操作,例如验证、审计或调用外部程序。在这个案例中,触发器被用来在特定的数据操作之后执行Java代码。 Java代码通常存储在数据库的BLOB或CLOB列中,或者作为PL/SQL...
- **知识点**: 在Oracle Developer/2000中, 不同的键盘触发子对应不同的按键操作, 这对于快速开发和调试程序至关重要。 - **详细解释**: Oracle Developer/2000提供了丰富的键盘触发子来处理用户输入, 如`WHEN-KEY-...
Oracle数据库的操作程序涉及众多方面,包括用户界面交互、数据访问、报表打印以及系统集成等。以下是一些关键知识点的详细说明: 1. **FORM中键盘触发子**:Developer/2000允许开发者自定义键盘快捷键,提高用户...
3. **SQL*Loader工具**:SQL*Loader是Oracle提供的一个强大工具,用于批量导入外部数据到Oracle数据库。它支持多种数据格式,如CSV、文本文件等,并提供了灵活的数据转换和错误处理功能。通过配置控制文件(.ctl),...
Oracle Workflow与Oracle E-Business Suite、Oracle Applications及其他第三方系统无缝集成,可调用外部服务和应用程序,实现跨系统的流程自动化,增强了系统的灵活性和适应性。 #### 4. **安全性与审计** 提供...
这部分讲解了如何在 PL/SQL 中调用 Java 代码,这对于需要集成外部服务或使用 Java 库的情况非常有用。 **5.3 PL/SQL 操作 EXCEL** 这部分介绍了如何使用 PL/SQL 来读写 Excel 文件,这对于数据导出或导入的需求...
Oracle Clusterware是一个集群管理软件,负责监控和管理集群内的所有节点,确保在任何单点故障发生时,能够自动地进行故障转移,保持应用程序的连续运行。而Oracle RAC则是在Oracle Clusterware的基础上,实现了...