日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

Oracle存儲過程中任務和管道的應用

瀏覽:59日期:2023-11-13 14:20:55
1. 前言 在ORACLE數據庫實際應用過程中,經常把業務處理邏輯的放在存儲過程,客戶端通過ADO進行調用。有些業務邏輯處理量大并且復雜,使客戶端調用存儲過程后,長時間沒有反應,也不知存儲過程運行狀態,本文講述如何在ORACLE通過任務和管道的應用,異步調用存儲過程的方法。 2. 基本原理 1.使用DBMS_JOB包將主處理存儲過程作為任務提交到任務隊列中; 2.主處理存儲過程在運行過程中通過DBMS_PIPE包將處理情況放在管道中; 3.監控存儲過程讀取管道,從而了解處理情況; 4.本文沒有描述雙向通信的方式,監控存儲過程可以通過管道發送信息給主處理存儲過程。 3. 具體實現測試 建立測試環境 3.1. 對數據庫的ini進行相關修改,使系統的任務隊列功能打開 對于Oracle9I,只需修設定數據庫的INI內的'JOB_QUEUE_PROCESSES=非0值',如 'JOB_QUEUE_PROCESSES=10',對于ORACLE8I除設定實例ini文件中的'JOB_QUEUE_PROCESSES=非0值'外,還需設定'job_queue_interval=1'。 3.2. 設用用戶權限 由于使用ORACLE中特定的程序包,所以要注重要明文給于用戶系統權限。對當前用戶(測試用戶),賦于以下權力: EXECUTE DBMS_PIPEEXECUTE DBMS_LOCKEXECUTE DBMS_JOB3.3. 建立模擬大業務處理存儲過程 本存儲過程通過循環30次,調用DBMS_LOCK.SLEEP(1)(體眠1秒)和寫管道模擬大的處理過程。 具體代碼如下: CREATE OR REPLACE PROCEDURE maXPro ASn integer;status NUMBER;BEGINFOR N IN 1..30 LOOPDBMS_PIPE.PURGE('maxpro'); --清除原管道信息DBMS_PIPE.PACK_MESSAGE(N); --把信息放入緩沖區status:=DBMS_PIPE.SEND_MESSAGE('maxpro');DBMS_LOCK.SLEEP(1);END LOOP;DBMS_PIPE.PURGE('maxpro'); --清除原管道信息DBMS_PIPE.PACK_MESSAGE(999999); --把信息放入緩沖區,用999999 表示過程完成status:=DBMS_PIPE.SEND_MESSAGE('maxpro');END maxpro;3.4. 建立讀取管道動態了解處理狀態的存儲過程 以下代碼是對于maxpro存儲過程的狀態進行讀取的過程,主要使用讀取管道的方法,注重: status:= DBMS_PIPE.RECEIVE_MESSAGE('maxpro',0);中的'0'參數是很要害的,說明接受等待時間為0秒,表示,調用時假如沒有信息不等待直接返回。 具體代碼如下: CREATE OR REPLACE PROCEDURE readmaxpro ASn integer;status integer;begin--接受等待時間為1秒,可以為0,立即調用或 DBMS_PIPE.RECEIVE_MESSAGE('mypipe') 等待100天status:= DBMS_PIPE.RECEIVE_MESSAGE('maxpro',0);--status為0為成功可以UNPACK_MESSAGE,1為超時沒有數據, 2為信息太大,3為內部錯誤IF status <> 0 THENDBMS_OUTPUT.PUT_LINE('管道中現在沒有信息返回');return;END IF;DBMS_PIPE.UNPACK_MESSAGE(n);DBMS_OUTPUT.PUT_LINE('maxpro 的當前進行狀態為' n);end;3.5. -起動模擬大業務處理存儲過程為后臺進程的存儲過程(BEGINMAXPRO) 通過DBMS_JOB.SUBMIT(JOB,'maxpro;',sysdate,NULL,FALSE);使'maxpro'為一個任務,在當前時間(sysdate)后執行,當然假如把sysdate改一具體時間,那就在具體時間執行。 具休代碼如下: CREATE OR REPLACE PROCEDURE beginmaxpro ASJOB BINARY_INTEGER;BEGINDBMS_JOB.SUBMIT(JOB,'maxpro;',sysdate,NULL,FALSE);DBMS_OUTPUT.PUT_LINE('隊列號碼JOB=' JOB);COMMIT;end;4. 代碼執行 4.1. 執行過程 在CMD行輸入 sqlplus 根據提示登錄設定DBMS_OUTPUT可見SQL> set serveroutput ON以下是執行過程和相應的返回信息SQL> call beginmaxpro();隊列號碼JOB=21調用完成。SQL> call readmaxpro();maxpro 的當前進行狀態為14調用完成。SQL> call readmaxpro();maxpro 的當前進行狀態為16調用完成。SQL> call readmaxpro();maxpro 的當前進行狀態為23調用完成。SQL> call readmaxpro();maxpro 的當前進行狀態為999999調用完成。SQL> call readmaxpro();管道中現在沒有信息返回調用完成。SQL>4.2. 執行分析 beginmaxpro(),將主處理存儲過程放入隊列的過程,執行后存儲程序馬上返回,maxpro存儲過程放在任務隊列中,并設定為在當前系統時間執行(馬上執行)。 maxpro為主處理存儲過程,開始執行模擬大業務處理,處理過程中將處理進度信息寫入管道。 readmaxpro();為檢查狀態存儲過程,首先讀取信息,假如信息不存在,說明管道內沒有信息可讀而退出;假如存在信息則讀出信息。 本例子可以進行改進,輸出不通過DBMS_OUTPUT.PUT_LINE而是用返回值,那么就可以在前端用ADO調用,發布任務,任務過程中從客戶端讀取進度。代碼如下: CREATE OR REPLACE PROCEDURE readmaxpro(p out intergr) ASn integer;status integer;beginstatus:= DBMS_PIPE.RECEIVE_MESSAGE('maxpro',0);IF status <> 0 THENP:=-1;return;END IF;DBMS_PIPE.UNPACK_MESSAGE(p);end;
標簽: Oracle 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩av不卡一区二区| 国产精品毛片久久久| 日韩成人午夜精品| 伊人久久大香伊蕉在人线观看热v| 欧美成人国产| 欧美精品一卡| 午夜在线播放视频欧美| 国产手机视频一区二区| 亚洲综合另类| 亚洲乱码一区| 亚洲3区在线| 日韩av一二三| 欧美国产另类| 麻豆国产在线| 丝袜美腿诱惑一区二区三区| 99久久婷婷| 亚洲欧美日韩在线观看a三区| 久久亚洲风情| 91大神在线观看线路一区| 国产精品theporn| 中文字幕在线高清| 91久久久精品国产| 深夜福利亚洲| 老色鬼精品视频在线观看播放| 国产一区二区三区四区大秀| 日韩电影免费在线观看| 欧美色图一区| 中文字幕一区二区三区四区久久| 日韩va亚洲va欧美va久久| 久久99视频| 在线天堂中文资源最新版| 久久久精品网| 日韩亚洲国产欧美| 亚洲精品在线二区| 欧美精品97| 丝袜av一区| 老司机精品久久| 国产免费久久| 日韩免费一区| 久热综合在线亚洲精品| 国产精品白丝av嫩草影院| 高清av不卡| 蜜桃伊人久久| 久久中文欧美| 狠狠操综合网| 欧美三级第一页| 日韩欧美字幕| 亚洲欧美日韩视频二区| 欧美国产另类| 国产一区欧美| 国产精品自在| 激情五月综合| 91精品丝袜国产高跟在线| 成人一二三区| 男人操女人的视频在线观看欧美| 国产精品久久乐| 亚洲无线一线二线三线区别av| 日本在线视频一区二区| 国产精品久久久久久久久妇女| 久久www成人_看片免费不卡| 卡一卡二国产精品| 欧美专区在线| 精品日韩一区| 亚洲综合不卡| 国产精品蜜芽在线观看| 亚洲精选成人| 91精品国产调教在线观看| 欧美精品国产一区| 91精品观看| 欧美韩一区二区| 日本欧美在线看| 久久久夜夜夜| 国产精品久久久久毛片大屁完整版| 亚洲电影有码| 欧美日韩一区二区国产| 亚州av乱码久久精品蜜桃| 捆绑调教美女网站视频一区| 蜜臀va亚洲va欧美va天堂| a国产在线视频| 欧美精品影院| 丝袜美腿亚洲一区| 999国产精品| 精品视频在线观看网站| 不卡一区2区| 免费不卡中文字幕在线| 国产精品欧美三级在线观看| 亚洲大全视频| 88久久精品| 国产精品久久久久9999高清| 日韩欧美中文| 久久精品人人| 日韩精品诱惑一区?区三区| 91九色精品| 高清av不卡| 日韩福利视频一区| 日本h片久久| 久久xxxx精品视频| 欧美日韩一区二区三区视频播放| 亚州av一区| 精品精品99| 日韩精选在线| 亚洲深爱激情| 久久一级电影| 日韩久久视频| 天堂а√在线最新版中文在线| 国产精品日韩精品在线播放| 中文一区一区三区免费在线观 | 日韩中文字幕区一区有砖一区| 日韩中文首页| 久久精品天堂| 麻豆精品在线视频| 国产精品片aa在线观看| 国产欧美亚洲精品a| 日日夜夜免费精品视频| 日韩专区欧美专区| 国产精品毛片在线| 999久久久国产精品| 91青青国产在线观看精品| 国产精品a级| 国产精品毛片aⅴ一区二区三区| 国产一卡不卡| 国产午夜一区| 国产精品一国产精品k频道56| 国产精品日本一区二区三区在线| 国产欧美日韩视频在线| 欧美日一区二区三区在线观看国产免| 日本成人在线不卡视频| 婷婷五月色综合香五月| 日本aⅴ精品一区二区三区 | 精品久久久亚洲| 久久不见久久见免费视频7| 国产精品成人国产| 欧美韩一区二区| 国产aa精品| 国产资源在线观看入口av| 92国产精品| 久久国产电影| 黄色国产精品| 一区二区国产在线观看| 日韩1区2区日韩1区2区| 国产欧美日韩影院| 国产精品福利在线观看播放| 日韩成人亚洲| 亚洲激精日韩激精欧美精品| 国产精品丝袜xxxxxxx| 中文字幕日韩亚洲| 欧美性www| 狠狠久久伊人| 久久久噜噜噜| 国产精品社区| 久久国产精品免费一区二区三区| 美女精品久久| 日韩中文字幕高清在线观看| 欧美va天堂在线| 日韩在线观看中文字幕| 国产精品最新| 日韩天堂在线| 久久亚洲电影| 国产伦精品一区二区三区在线播放| 国产精品久久久久久久久久齐齐| 精品一区二区三区的国产在线观看| а√天堂8资源中文在线| 欧美在线影院| 欧美日韩网址| 欧美日韩免费看片| 国产精品日韩久久久| 欧美日韩中文| 久久精品亚洲欧美日韩精品中文字幕| 亚洲综合三区| 国产精品va| 欧美1区2区3区| 日本国产亚洲| 国产盗摄——sm在线视频| 中日韩男男gay无套| 久久国产麻豆精品| 99国产精品免费视频观看| 中文字幕日韩亚洲| 精品亚洲自拍| 亚洲深夜福利| 麻豆国产一区| 午夜视频精品| 国产精品欧美三级在线观看 | 国产精品调教| 99精品一区| 日韩av一区二区在线影视| 成人av三级| 天堂av在线一区| 国内自拍视频一区二区三区| 玖玖精品视频| 天堂中文在线播放| 欧美亚洲免费| 亚洲精品国产偷自在线观看| 国产欧美一区二区三区国产幕精品| 国内亚洲精品| 免费日韩成人| 亚洲视频国产精品| 国产成人精品亚洲日本在线观看| 日韩av电影一区| 黄色成人精品网站| 高清一区二区|