网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.oracle 存储过程的基本语法.
.浅谈Oracle 10G 闪回恢.
.Oracle数据库导入导出方法的个人.
.ORACLE 临时表空间TEMP 满了怎么.
.各种启动程序方式详细介绍.
.SQL优化思考.
.v$sqlarea,v$sql,v$sqltext提供的.
.全面介绍Oracle的诊断事件.
.SQLServer和Oracle的常用函数对比.
.Java开发中使用Oracle数据库的一.
.怎样才能dump Oracle数据库的内部.
.ORACLE在HP-UX下的系列问题处理(.
.利用Oracle数据泵完成数据导入和.
.实战管理联机日志.
.移动LOB类型数据段.
.Oracle DBA数据库结构试题精选(2).
.ORACLE 锁.
.rman总结.
.如何查看Oracle数据表的建表语句.
.数据库SQLServer 驱动程序版本造.

Oracle外部程序的触发小结

发表日期:2008-2-9


在论坛里曾经看过一个帖子,有位用户问了这么一个问题: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数据不丢失? 人气:669
下一篇:影响ORACLE性能的源头:性能调优原则 人气:644
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐