亚洲Aⅴ无码Av红楼在线观看_国产午夜福利涩爱AⅤ_国产sm调教一区二区三区_精品人妻一区二区三区不卡毛片

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

Oracle 10g實現(xiàn)存儲過程異步調(diào)用

發(fā)布時間:  2012/8/29 17:46:13

DBMS_JOB是什么?
DBMS_JOB是Oracle數(shù)據(jù)庫提供的專家程序包的一個.

主要用來在后臺運行程序,是數(shù)據(jù)庫中一個極好的工具. 可用于自動調(diào)整調(diào)度例程任務(wù),例如分析數(shù)據(jù)表,執(zhí)行一些歸檔操作,清理草稿表等等.

使用語法說明.
使用DBMS_JOB主例程是SUBMIT例程, 對SUBMIT例程中的各變量含義說明:
-
 

JOB: 一個作業(yè)標(biāo)識符,由系統(tǒng)來分配(OUT參數(shù)).

WHAT: 將要運行的SQL文本,必須是有效的PL/SQL語句或一段代碼. 例如: 運行存儲過程P,可以傳遞字符串P;(包括分號)給這個例程。無論在WHAT參數(shù)中提交什么,將被封裝成如下PL/SQL塊:

Declare

Job Binary_Integer := :Job;

Next_Date Date := :Mydate;

Broken Boolean := False;

Begin

What

:Mydate := Next_Date;

If Broken Then :B := 1;

Else :B := 0;

End If;

End;

NEXT_DATE: 日期函數(shù)字符串,用來計算作業(yè)下次運行的時間.

NO_PARSE: 確定WHAT參數(shù)在提交時是否進行有效性分析。

INSTANCE: 只得在松耦合聚簇的機器上,在并行服務(wù)器模式(一個Oracle可以運行的模式)下才有意義,這將指定在哪個實例上作業(yè)可以執(zhí)行.

FORCE: 只有在并行服務(wù)器模式下才有意義. 如設(shè)置為True(默認(rèn)值),可以使用任何實例數(shù)據(jù)庫提交作業(yè), 如設(shè)置為False, 相關(guān)實例不可用,提交請求將失敗.

在DBMS_JOB程序包中也有其它入口點. SUBMIT是用來調(diào)度作業(yè)的一個,其他的允許操作已調(diào)度的作業(yè),執(zhí)行操作,如RUN,REMOVE和CHANGE操作.

示例
設(shè)原有存儲過程為:pr_movedetail(業(yè)務(wù)存儲過程), 執(zhí)行大數(shù)據(jù)量操作, 操作耗時.

利用DBMS_Job包功能, 將存儲過程的執(zhí)行集中提交給Oracle Job來處理, 客戶端無需等待.

1. 創(chuàng)建一張表,包含每個參數(shù)的字段,再加一個ID主碼字段.

Create Table run_movedetail

(

ID number primary key,

Param1 varchar2(255),

Param1 varchar2(255),

RunDate Date

)

此表不僅作為將要提交的處理過程排隊的地方,而且當(dāng)提交時,也可作為已提交處理過程保存永久日志的地方.

2. 創(chuàng)建fast_movedetail存儲過程(創(chuàng)建作業(yè)ID及把各參數(shù)Insert到run_movedetail).

create or replace procedure fast_movedetail(p_Param1 varchar2,p_Param2 varchar2)

As

L_job number;

Begin

dbms_job.submit(L_job,’background_movedetail(JOB);’);

Insert into run_movedetail(ID,Param1,Parma2) values (L_job, p_Param1, p_Param2);

End;

該例程將提交一項作業(yè)background_movedetail,并且將它傳遞給JOB參數(shù).

3. 創(chuàng)建background_movedetail存儲過程.

Create or replace procedure background_movedetail(p_job in number)

As

L_rec run_movedetail%rowtype;

Begin

Select * into L_rec from run_movedetail where id = p_job;

Pr_movedetail(L_rec.Param1,L_rec.Param2); //業(yè)務(wù)存儲過程調(diào)用

Update run_movedetail set RunDate = sysdate where id = p_job;

//調(diào)用實際使用的Pr_movedetail例程, 然后更新記錄,記錄實際提交時間.

End;

最后在客戶端直接調(diào)用fast_movedetail即可.


本文出自:億恩科技【www.allwellnessguide.com】

服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機 24小時售后服務(wù)電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務(wù)熱線