国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Oracle外部程序的觸發小結

瀏覽:113日期:2023-11-21 17:32:07
在論壇里曾經看過一個帖子,有位用戶問了這么一個問題: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 數據庫
主站蜘蛛池模板: 在线网站黄色 | 99在线观看精品 | 在线精品国产 | 免费福利在线看黄网站 | 美国毛片一级视频在线aa | 欧美黄色一级视屏 | 爱久久精品国产 | 国产精品 色 | 亚洲黄网址 | 日本在线观看不卡免费视频 | 久久精品免费播放 | 99热播| 一级毛片成人免费看a | 国产成人91高清精品免费 | f性欧美 | 日韩免费一区二区三区在线 | 亚洲综合美女 | 欧美一级久久 | 在线精品日韩一区二区三区 | 久久久久欧美精品网站 | 窝窝女人体国产午夜视频 | 精品亚洲欧美高清不卡高清 | 日韩福利视频精品专区 | 久久精品国产只有精品6 | 亚洲欧美日韩国产vr在线观 | 免费观看日本视频 | 天天草综合 | 亚洲一区欧美一区 | 亚州三级视频 | 亚洲国产精品aaa一区 | 国产自产21区 | 日韩精品视频一区二区三区 | 成人久久久久 | 看片亚洲 | 国产人成久久久精品 | 欧美成人黄色网 | 亚洲国产成人私人影院 | 国产亚洲精品一区久久 | 男女视频免费看 | 一级片欧美 | 久久99在线 |