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

首頁 > 數據庫 > Oracle > 正文

網友經驗談之Oracle外部程序觸發小結

2024-08-29 13:51:33
字體:
來源:轉載
供稿:網友
在論壇里曾經看過一個帖子,有位用戶問了這么一個問題: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 WorldPL/SQL procedure sUCcessfully completed.


上一篇:從問題入手幫你解決Oracle殺死死鎖進程

下一篇:輕松六步使你的Oracle存儲過程迅速加密

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

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 勐海县| 永定县| 湛江市| 新安县| 花莲县| 郸城县| 广德县| 永春县| 绍兴市| 大冶市| 盐边县| 肇州县| 文登市| 武川县| 吕梁市| 柳江县| 江北区| 通江县| 黔南| 新蔡县| 台东市| 开原市| 家居| 喀什市| 敦化市| 永平县| 油尖旺区| 岳池县| 尼勒克县| 汉川市| 望谟县| 麻江县| 建德市| 彭阳县| 水城县| 乌鲁木齐县| 昂仁县| 平泉县| 汽车| 富平县| 麟游县|