国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

網(wǎng)友經(jīng)驗(yàn)談之Oracle外部程序觸發(fā)小結(jié)

瀏覽:2日期:2023-11-25 15:40:27
在論壇里曾經(jīng)看過一個(gè)帖子,有位用戶問了這么一個(gè)問題:Oracle 里一個(gè)表插入一條數(shù)據(jù),提交后,如何讓外部程序收到這個(gè)消息? 當(dāng)時(shí)沒有留意,現(xiàn)在想想似乎應(yīng)該可以總結(jié)一下了。舉例:1、過程中:...declaremyexcept exception;inserted_count1 number;inserted_count2 number;...begininsert into table values(...);inserted_count1 := sql%rowcount;...--可以判定inserted_count1是否大于0來確定是否插入了數(shù)據(jù)commit;inserted_count2 := sql%rowcount; --這里inserted_count2為0... --事實(shí)上,這里一定是提交成功才會(huì)執(zhí)行,否則會(huì)跳到exception段yourprocess(yourpara);--調(diào)用你自己的過程或語句跟別的過程通信...exceptionwhen others then---你可以根據(jù)sqlcode自己去查具體的提交失敗原因...yourprocess_for_fail(yourpara)--調(diào)用你自己的過程跟別的過程通信...end;2、直接外部操作,建觸發(fā)器:create or replace trigger table after insert for each row...begin...yourprocess(yourprara);...end;當(dāng)然,2的方法這只能更總到提交前,假如要監(jiān)視提交后狀態(tài),你可以在操作表建立標(biāo)志位或?qū)iT建個(gè)表,操作表發(fā)生變化就通過trigger更新變化信息到狀態(tài)表,掃描狀態(tài)表就知道是否commit;成功了我想這位用戶應(yīng)該通過trigger來調(diào)用Java source來實(shí)現(xiàn)插入數(shù)據(jù)后來通知外部程序來做一些事情:使用java source的例子如下:SQL> create or replace and compile java source named HelloWorld2 as3 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 java3 name 'HelloWorld.db_run()';4 /Procedure created.SQL> set serveroutput on size 5000SQL> call dbms_java.set_output(5000) ;Call completed.SQL> SQL> exec run_helloworld ;Hello WorldPL/SQL procedure sUCcessfully completed.
標(biāo)簽: Oracle 數(shù)據(jù)庫
主站蜘蛛池模板: 沁阳市| 乐清市| 军事| 高州市| 阳朔县| 武陟县| 沾益县| 淳化县| 九台市| 兰西县| 新巴尔虎左旗| 木兰县| 寿光市| 古交市| 祁连县| 十堰市| 进贤县| 岫岩| 洛阳市| 汉中市| 太仆寺旗| 耒阳市| 城固县| 三台县| 湟源县| 彰化市| 阿图什市| 吉林省| 永登县| 许昌市| 霞浦县| 闻喜县| 阜平县| 蓬安县| 大名县| 依兰县| 沙洋县| 天柱县| 辛集市| 额济纳旗| 鱼台县|