国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle外部程序的觸發小結

2024-08-29 13:50:16
字體:
來源:轉載
供稿:網友
在論壇里曾經看過一個帖子,有位用戶問了這么一個問題: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數據不丟失?

下一篇:影響ORACLE性能的源頭:性能調優原則

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 巴林左旗| 怀远县| 莱阳市| 宝兴县| 鲁山县| 承德县| 上栗县| 定南县| 临潭县| 浦县| 德钦县| 通江县| 保亭| 吉水县| 体育| 临朐县| 南充市| 古田县| 綦江县| 元阳县| 大田县| 宁都县| 孙吴县| 寿宁县| 顺义区| 灵武市| 剑阁县| 东阿县| 综艺| 永胜县| 新闻| 林甸县| 新竹县| 临沧市| 保亭| 霍林郭勒市| 达尔| 苗栗县| 南雄市| 景德镇市| 四子王旗|