精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Oracle存儲過程中異步調用的實際操作步驟

數據庫 Oracle
以下的文章主要介紹的是Oracle存儲過程的相關異步調用的實際操作方案,其中也涵蓋了其基本原理的介紹,還有其具體實現測試等,相關內容的描述。

我們都知道在Oracle數據庫的實際應用的過程中,我們經常把相關的業務處理邏輯,放在Oracle存儲過程中,客戶端以通過ADO來進行相關的調用。而有些相關的業務邏輯處理量大并且復雜。

使客戶端調用存儲過程后,長時間沒有反應,也不知Oracle存儲過程運行狀態,

本文講述如何在ORACLE通過任務和管道的應用,異步調用存儲過程的方法。

 基本原理

1.使用DBMS_JOB包將主處理存儲過程作為任務提交到任務隊列中

2.主處理存儲過程在運行過程中通過DBMS_PIPE包將處理情況放在管道中

3.監控存儲過程讀取管道,從而了解處理情況

4.本文沒有描述雙向通信的方式,監控Oracle存儲過程可以通過管道發送信息給主處理存儲過程

具體實現測試

建立測試環境

4.1. 對數據庫的ini進行相關修改,使系統的任務隊列功能打開

對于Oracle9I,只需修設定數據庫的INI內的"JOB_QUEUE_PROCESSES=非0值",如 "JOB_QUEUE_PROCESSES=10",對于Oracle8I除設定實例ini文件中的"JOB_QUEUE_PROCESSES=非0值"外,還需設定"job_queue_interval=1"

4.2. 設用用戶權限

由于使用Oracle中特定的程序包,所以要注意要明文給于用戶系統權限。對當前用戶(測試用戶),賦于以下權力

  1. EXECUTE DBMS_PIPE  
  2. EXECUTE DBMS_LOCK  
  3. EXECUTE DBMS_JOB  

4.3. 建立模擬大業務處理存儲過程

本Oracle存儲過程通過循環30次,調用DBMS_LOCK.SLEEP(1)(體眠1秒)和寫管道模擬大的處理過程。

具體代碼如下:

 

 

  1. CREATE OR REPLACE PROCEDURE maxpro AS  
  2. n integer;   
  3. status NUMBER;  
  4. BEGIN  
  5. FOR N IN 1..30 LOOP 

 

 

DBMS_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;

 

4.4. 建立讀取管道動態了解處理狀態的Oracle存儲過程

以下代碼是對于maxpro存儲過程的狀態進行讀取的過程,主要使用讀取管道的方法,注意:

 

  1. status:DBMS_PIPE.RECEIVE_MESSAGE('maxpro',0);  

中的"0"參數是很關鍵的,說明接受等待時間為0秒,表示,調用時如果沒有信息不等待直接返回。

具體代碼如下:

 

  1. CREATE OR REPLACE PROCEDURE readmaxpro AS  
  2. n integer;  
  3. status integer;  
  4. begin 

 

接受等待時間為1秒,可以為0,立即調用或DBMS_PIPE.RECEIVE_MESSAGE('mypipe') 等待100天

 

status:= DBMS_PIPE.RECEIVE_MESSAGE('maxpro',0);

 

status為0為成功可以UNPACK_MESSAGE,1為超時沒有數據,2為信息太大,3為內部錯誤

 

  1. IF status <> 0 THEN  
  2. DBMS_OUTPUT.PUT_LINE('管道中現在沒有信息返回');  
  3. return;  
  4. END IF;  
  5. DBMS_PIPE.UNPACK_MESSAGE(n);  
  6. DBMS_OUTPUT.PUT_LINE('maxpro 的當前進行狀態為'|| n);  
  7. end;  

4.5. -起動模擬大業務處理Oracle存儲過程為后臺進程的存儲過程(BEGINMAXPRO)

通過DBMS_JOB.SUBMIT(JOB,'maxpro;',sysdate,NULL,FALSE);使"maxpro"為一個任務,在當前時間(sysdate)后執行,當然如果把sysdate改一具體時間,那就在具體時間執行

具休代碼如下:

  1. CREATE OR REPLACE PROCEDURE beginmaxpro AS  
  2. JOB BINARY_INTEGER;  
  3. BEGIN  
  4. DBMS_JOB.SUBMIT(JOB,'maxpro;',sysdate,NULL,FALSE);  
  5. DBMS_OUTPUT.PUT_LINE('隊列號碼JOB=' || JOB);  
  6. COMMIT;  
  7. end;  

代碼執行

5.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>

 

5.2. 執行分析

beginmaxpro(),將主處理存儲過程放入隊列的過程,執行后存儲程序馬上返回,maxpro存儲過程放在任務隊列中,并設定為在當前系統時間執行(馬上執行)

maxpro為主處理存儲過程,開始執行模擬大業務處理,處理過程中將處理進度信息寫入管道

readmaxpro();為檢查狀態Oracle存儲過程,首先讀取信息,如果信息不存在,說明管道內沒有信息可讀而退出;如果存在信息則讀出信息

本例子可以進行改進,輸出不通過DBMS_OUTPUT.PUT_LINE而是用返回值,那么就可以在前端用ADO調用,發布任務,任務過程中從客戶端讀取進度。代碼如下:

 

  1. CREATE OR REPLACE PROCEDURE readmaxpro(p out intergr) AS  
  2. n integer;  
  3. status integer;  
  4. begin  
  5. status:DBMS_PIPE.RECEIVE_MESSAGE('maxpro',0);  
  6. IF status <> 0 THEN  
  7. P:=-1;  
  8. return;  
  9. END IF;  
  10. DBMS_PIPE.UNPACK_MESSAGE(p);  
  11. end;  

6. 附錄:

6.1. 相關程序包說明

 

1

 

 

  1. DBMS_JOB.SUBMIT(  
  2. JOB OUT BINARY_INTEGER,  
  3. WHAT IN VARCHAR2,  
  4. NEXT_DATE IN DATE DEFAULTSYSDATE,   
  5. INTERVAL IN VARCHAR2 DEFAULT 'NULL',  
  6. NO_PARSE IN BOOLEAN DEFAULT FALSE,  
  7. INSTANCE IN BINARY_INTEGER DEFAULT ANY_INSTANCE,  
  8. FORCE IN BOOLEAN DEFAULT FALSE) 

 

功能:提交作業入作業隊列

 

參數說明:

 

JOB:作業的作業號,輸出參數

 

WHAT:作業對應的PL/SQL代碼(一般用于過程名)

 

NEXT_DATE:下一次作業運行的時間

 

INTERVAL:作業執行間隔時間,缺省是NULL,只執行一次

 

NO_PARSE:是否對WHAT語句,在提交時進行分析,缺省是進行分析。

 

INSTANCE:作業提交時,指明運行作業的實例,缺省是0,任何的數據庫全可以

 

FORCE:是否檢查INSTANCE指定的數據庫在運行,缺省是FALSE,不檢查

 

例子:

 

  1. declare  
  2. jobn number;  
  3. begin  
  4. DBMS_JOB.SUBMIT(jobn,'maxpro;',sysdate);  
  5. DBMS_OUTPUT.PUT_LINE('JOB=' || jobn);  
  6. COMMIT;  
  7. end;  

注意:

設定數據庫參數JOB_QUEUE_PROCESSES = 非0值(***隊列數***60)

對于9I前設定數據庫參數JOB_QUEUE_INTERVAL = 非0值(隊列掃描周期1-3600秒)

2

  1. DBMS_PIPE.PACK_MESSAGE (item IN VARCHAR2);  
  2. DBMS_PIPE.PACK_MESSAGE (item IN NCHAR);  
  3. DBMS_PIPE.PACK_MESSAGE (item IN NUMBER);  
  4. DBMS_PIPE.PACK_MESSAGE (item IN DATE);  
  5. DBMS_PIPE.PACK_MESSAGE_RAW (item IN RAW);  
  6. DBMS_PIPE.PACK_MESSAGE_ROWID (item IN ROWID); 

功能:把一個數據項放到私有數據緩沖區

3

  1. DBMS_PIPE.SEND_MESSAGE (  
  2. pipename IN VARCHAR2,  
  3. timeout IN INTEGER DEFAULT MAXWAIT,  
  4. maxpipesize IN INTEGER DEFAULT 8192)  
  5. RETURN INTEGER; 

 

功能:發送私有數據緩沖區的信息到命名管道,如果管道不存在就建立

4

  1. DBMS_PIPE.RECEIVE_MESSAGE (  
  2. pipename IN VARCHAR2,  
  3. timeout IN INTEGER DEFAULT maxwait) RETURN INTEGER; 

功能:從管道到接受信息放到數據緩沖區

5

  1. DBMS_PIPE.UNPACK_MESSAGE (item OUT VARCHAR2);  
  2. DBMS_PIPE.UNPACK_MESSAGE (item OUT NCHAR);  
  3. DBMS_PIPE.UNPACK_MESSAGE (item OUT NUMBER);  
  4. DBMS_PIPE.UNPACK_MESSAGE (item OUT DATE);  
  5. DBMS_PIPE.UNPACK_MESSAGE_RAW (item OUT RAW);  
  6. DBMS_PIPE.UNPACK_MESSAGE_ROWID (item OUT ROWID); 

功能:從數據緩沖區接收下一個數據項

6

  1. DBMS_PIPE.PURGE ( pipename IN VARCHAR2); 

功能:清除管道內的信息

 

以上的相關內容就是對Oracle存儲過程的異步調用 的介紹,望你能有所收獲。

 

文章出自: http://wolongshan.javaeye.com/blog/638734

【編輯推薦】

  1. Oracle遠程復制和異地容災的3種解決方案介紹
  2. Oracle數據庫保持其優良性的手段有哪些
  3. 九大Oracle性能優化基本方法詳解
  4. Oracle數據庫的四種實用性很強的啟動方式
  5. Oracle 11g中***有獨特點的5大特點
責任編輯:佚名 來源: javaeye
相關推薦

2010-04-07 13:02:14

Oracle 存儲過程

2010-07-23 14:26:37

SQL Server存

2010-03-30 12:50:42

Oracle存儲

2010-04-27 15:11:20

Oracle樹的存儲過

2010-04-20 11:06:33

Oracle索引

2010-04-02 13:34:33

Oracle DBA

2010-04-06 08:58:27

Oracle job

2010-04-15 14:30:35

Oracle創建

2010-04-21 17:09:17

Oracle安裝

2010-04-15 13:51:06

Oracle EBS

2010-08-05 14:34:26

DB2存儲過程

2010-05-26 14:55:43

MySQL存儲過程

2010-03-12 15:29:19

Pythonexe

2010-04-21 17:51:36

Oracle左連接

2010-05-10 18:05:15

Oracle釋放und

2010-04-21 10:23:13

Oracle實現

2010-04-30 14:39:03

Oracle數據庫

2010-03-16 15:16:01

Python web框

2010-04-13 18:03:33

Oracle服務

2010-04-01 17:56:59

Oracle客戶端配置
點贊
收藏

51CTO技術棧公眾號

国产模特av私拍大尺度| 免费观看一区二区三区| 国产高清在线观看| 看国产成人h片视频| 美女精品视频一区| av直播在线观看| 日韩毛片网站| 亚洲午夜免费视频| 色女孩综合网| 人妻丰满熟妇av无码区hd| 久久精品盗摄| 欧美激情欧美激情| 四虎国产精品成人免费入口| a一区二区三区亚洲| 精品福利免费观看| 热这里只有精品| 涩涩视频在线观看免费| 国产资源在线一区| 国产不卡视频在线| 国产一级淫片a| 综合久久十次| 在线观看不卡av| 伊人网综合视频| gogo大尺度成人免费视频| 欧美性xxxxxxxxx| 香港三级日本三级a视频| 网友自拍视频在线| 2021国产精品久久精品| av在线不卡一区| 国产又粗又大又爽| 日韩和的一区二区| 91精品91久久久久久| 成人免费毛片xxx| 日韩精品2区| 亚洲一区999| 成人免费毛片日本片视频| 欧美日韩黄网站| 欧美高清精品3d| 欧美三级理论片| 国模冰冰炮一区二区| 亚洲va欧美va国产va天堂影院| 在线播放 亚洲| 91在线导航| 国产欧美一二三区| 免费在线国产精品| 婷婷久久久久久| 不卡一二三区首页| 国产精品sss| 亚洲精品无遮挡| 国产91色综合久久免费分享| 91最新在线免费观看| 国产一区二区小视频| 精品一区精品二区高清| 国产欧美在线视频| 中文字幕一区二区三区波野结| 日韩综合小视频| 国产精品日韩在线播放| 一卡二卡三卡在线| 国产美女在线观看一区| 亚洲精品免费一区二区三区| 99免费在线视频| 国产精品18久久久久久久久久久久| 成人在线中文字幕| www.四虎在线观看| 不卡的av在线播放| 久久精品magnetxturnbtih| 神马久久高清| 久久久久久久久久久久久女国产乱| 麻豆av福利av久久av| 欧美3p视频在线观看| 国产亚洲一本大道中文在线| 日韩一区不卡| fc2ppv国产精品久久| 亚洲精品五月天| 国产二区视频在线| 超级碰碰久久| 欧美日韩小视频| 五月天国产视频| 天天爽天天爽天天爽| 亚洲插插视频| 在线观看一区二区视频| 国产原创精品在线| 日韩精品一级| 日韩精品视频免费| sm捆绑调教视频| 一区在线播放| 国产精品成av人在线视午夜片| 夜夜骚av一区二区三区| 国产不卡免费视频| 欧美极品一区二区| 成人免费看片| 欧美日韩亚洲视频| 色91精品久久久久久久久| 亚洲天堂av资源在线观看| 日韩精品视频免费在线观看| 欧美性猛交xxxx乱大交少妇| 亚洲无线一线二线三线区别av| 欧美自拍大量在线观看| 国产精品国产av| 99久久免费精品| 亚洲最新免费视频| 深夜成人在线| 日韩一区二区中文字幕| 国产精品揄拍100视频| 911久久香蕉国产线看观看| 97在线视频免费观看| 中文字幕制服诱惑| 免费网站免费进入在线| 国产亚洲精品资源在线26u| 亚洲小说欧美另类激情| 美女的胸无遮挡在线观看| 欧美日韩一区二区在线观看视频| 国产免费a级片| 欧美日一区二区| 欧美极品少妇xxxxⅹ裸体艺术 | 国产aⅴ一区二区三区| 久久久久国产免费免费| 成人免费性视频| 国产aⅴ精品一区二区四区| 亚洲日韩第一页| 日韩免费视频网站| 国产成人在线视频播放| 亚洲在线色站| 国产精品亚洲一区二区三区在线观看| 精品国产一二三| 日韩欧美综合视频| 美女网站色91| 日韩精品伦理第一区| 女人高潮被爽到呻吟在线观看| 欧美一区二区女人| 久久av红桃一区二区禁漫| 久久久精品网| 欧美久久综合性欧美| 多野结衣av一区| 欧美精品一区二区精品网| 欧洲第一无人区观看| 久久99久久精品| 亚洲欧美99| 福利视频亚洲| 日韩在线观看视频免费| 亚洲精品无码久久久久| 国产天堂亚洲国产碰碰| 成年人在线看片| 国产探花一区二区| 国产精品第2页| 成人好色电影| 欧美日韩一区二区三区视频 | 欧美不卡高清| 偷偷要91色婷婷| 黄色aaa级片| 欧美日韩黑人| 国产久一一精品| 美女av在线播放| 91精品国产综合久久婷婷香蕉| 色婷婷粉嫩av| 激情五月婷婷综合网| 可以免费看的黄色网址| 欧美三级一区| 久久久人成影片一区二区三区观看| 99久久精品国产一区二区成人| 亚洲免费观看在线视频| 91精品人妻一区二区三区蜜桃2| 中文字幕日韩欧美精品高清在线| 666精品在线| bbw在线视频| 亚洲欧洲一区二区三区在线观看 | 另类av一区二区| 日韩欧美99| 亚洲高清影院| 欧美激情综合色| 激情小视频在线观看| 在线免费观看日本一区| 国产中文字幕久久| 国产成人精品一区二区三区四区| 日韩小视频在线播放| 亚洲肉体裸体xxxx137| 国产精品黄色影片导航在线观看| 日本视频在线观看| 精品国产91久久久久久久妲己| wwwwww国产| 中文字幕在线一区| 国产一线在线观看| 日韩精品成人一区二区三区| 中日韩在线视频| 加勒比久久高清| 国产精品三级在线| 51漫画成人app入口| 国产一区二区三区三区在线观看 | 精品亚洲国产成av人片传媒| 亚洲熟妇av乱码在线观看| 亚洲欧美一区二区三区久本道91| 成人午夜精品无码区| 蜜臀av一区二区在线观看| 男人日女人的bb| 国产亚洲一区| 成人做爰66片免费看网站| 女人让男人操自己视频在线观看| xvideos国产精品| 男人久久精品| 精品少妇一区二区三区在线播放 | 户外露出一区二区三区| 欧美国产日韩一区| 国产h在线观看| 精品久久久久久久久久久久久久久| 中文字幕一区二区三区四区欧美| 亚洲最大的成人av| 大胸美女被爆操| eeuss影院一区二区三区| 亚洲精品性视频| 久久久久网站| 欧美成人免费在线观看视频| 亚洲成人tv| 丝袜美腿玉足3d专区一区| 欧美a级网站| 91文字幕巨乱亚洲香蕉| www.久久| 国产精品69精品一区二区三区| 国产嫩草在线视频| 久久久精品在线观看| 黄色毛片在线观看| 日韩精品免费在线| 黄色av网址在线| 欧美一区二区三区四区在线观看| 欧美日韩 一区二区三区| 丁香五六月婷婷久久激情| 粉嫩av性色av蜜臀av网站| 中文字幕乱码亚洲精品一区| 黄瓜视频污在线观看| 99久久精品国产导航| 国产日韩视频一区| 国产99久久久久| 精产国品一二三区| 激情成人综合网| 一区二区免费av| 精品写真视频在线观看| 日本成人中文字幕在线| 久久性天堂网| 亚洲爆乳无码专区| 老司机精品久久| 少妇高清精品毛片在线视频| 亚洲永久网站| 成人av一级片| 模特精品在线| 超碰97人人射妻| 久热精品在线| 日本老熟妇毛茸茸| 日韩黄色片在线观看| 亚洲色图 在线视频| 美日韩一区二区| 在线一区二区不卡| 国产精品一卡二卡| 欧美一级免费在线| 国产91精品久久久久久久网曝门 | 欧美猛男性生活免费| 污污的视频在线观看| 国a精品视频大全| 涩涩av在线| 国产精品久久久久久久app| 成人一区视频| 91在线免费观看网站| 亚洲码欧美码一区二区三区| 国产精品加勒比| 宅男在线一区| 天堂社区 天堂综合网 天堂资源最新版| 精品国内自产拍在线观看视频 | 国产欧美一区二区视频| 日日狠狠久久偷偷综合色| 欧美一区二区三区四区夜夜大片| 成人三级视频| 成人午夜视频免费观看| 91久久综合| 男人插女人下面免费视频| 久久精品免费看| 成人做爰69片免费| 久久久美女艺术照精彩视频福利播放| 中文字幕免费在线看线人动作大片| 国产精品久久久久久久浪潮网站| 国产精品老熟女一区二区| 亚洲午夜影视影院在线观看| 无码人妻精品一区二区三区不卡 | 日韩美女视频在线观看| 日本a人精品| 国产欧美日韩视频一区二区三区| 伊人春色精品| 日本女人高潮视频| 国产精品外国| 五月花丁香婷婷| 99久久er热在这里只有精品15| 黄色片网站免费| 一二三四社区欧美黄| 亚洲欧美综合自拍| 欧美一区二区黄| 韩国福利在线| 色综合男人天堂| 国精产品一区二区三区有限公司 | 精品久久成人| 丁香六月激情网| 蜜桃一区二区三区四区| 性高潮免费视频| 国产精品国产精品国产专区不蜜 | 日韩在线视频网址| 欧美性开放视频| 午夜久久久久久噜噜噜噜| 亚洲天堂网在线观看| 色综合999| 国产日韩在线免费| 夜夜躁狠狠躁日日躁2021日韩| 国产尤物av一区二区三区| 青娱乐精品视频| 制服丝袜第二页| 亚洲影视在线观看| 91国产免费视频| 宅男66日本亚洲欧美视频| 春色校园综合激情亚洲| 99国产在线| 亚洲精品va| 日韩欧美国产片| 欧美国产一区视频在线观看| 亚洲国产成人精品激情在线| 欧美一区二区三区在线观看视频| 成人亚洲综合天堂| 青青草一区二区| 精品福利网址导航| 成人在线观看毛片| 国产一区二区三区四| 欧美xxxx精品| 欧美日韩一级大片网址| 免费理论片在线观看播放老| 国内精久久久久久久久久人| 日韩视频一二区| 久久久久久久香蕉| 九色|91porny| 亚洲综合图片一区| 欧美精品精品一区| 麻豆tv入口在线看| 成人免费黄色网| 欧美成人69| 丰满人妻一区二区三区大胸 | 综合网日日天干夜夜久久| 欧美特大特白屁股xxxx| 欧美日韩在线精品一区二区三区| 亚洲国产精品第一区二区| 精品久久久久久无码人妻| 一区二区成人在线视频| 亚洲第九十九页| 欧美激情亚洲精品| 成人盗摄视频| a级黄色一级片| 久久男人中文字幕资源站| 日本一区二区免费电影| 亚洲欧美精品一区| 精品欧美日韩精品| 一区二区精品在线观看| 精品在线观看视频| www.av视频| 亚洲成人黄色在线观看| 韩国成人二区| 日韩av在线电影观看| 免费精品99久久国产综合精品| 岛国片在线免费观看| 91精品国产色综合久久不卡蜜臀 | 91传媒理伦片在线观看| 午夜不卡av在线| 玖玖综合伊人| 国产日韩欧美另类| 欧美在线三区| 美国黄色一级毛片| 欧美在线短视频| 国产日产一区二区三区| αv一区二区三区| 亚洲综合社区| 欧美a在线播放| 欧美刺激午夜性久久久久久久| 97天天综合网| 日韩中文字幕一区二区| 国产另类ts人妖一区二区| 日韩av免费网址| 中文字幕亚洲第一| 成人精品毛片| 噼里啪啦国语在线观看免费版高清版| 中文字幕一区二区三区四区| 成人免费公开视频| 国产91免费观看| 欧美96在线丨欧| b站大片免费直播| 欧美一区二区高清| 在线观看欧美日韩电影| 天堂v在线视频| 91免费看`日韩一区二区| 一区二区三区免费在线| 欧美孕妇性xx| 欧美一区视频| 美女被到爽高潮视频| 精品国产亚洲在线| 婷婷精品久久久久久久久久不卡| 九九爱精品视频| 亚洲蜜臀av乱码久久精品蜜桃| 四虎在线免费观看| 99c视频在线| 蜜臀av一区二区在线免费观看|