2013-02-11 31 views
0

我有一個存儲數據的臨時表。當數據輸入到應用程序端時(Java EE應用程序),我需要輪詢事件。一旦數據存儲在此臨時表中,我需要使用此日期來使用proc填充臨時表。Oracle11g:事件庫作業

我嘗試使用基於事件的作業。但沒用。請爲此提出一些解決方案。

回答

0

如果我正在閱讀此權限,您將擁有一個表格,該表格將存儲其中包含日期的行以及要根據日期表中輸入的數據填充的表格。

如果使用API​​插入日期表,只需調用您的過程。如果你不能這樣做,你可以使用觸發器來做到這一點。

create table temp_date(
    the_date date 
); 
create trigger temp_date_ai 
after insert on temp_date 
declare 
begin 
    myproc; 
end; 
/

,所以你插入每次行成temp_date表,你的程序將被調用。如果你需要的程序以異步被炒了,你總是可以使用dbms_job此:

create trigger temp_date_ai 
after insert on temp_date 
declare 
    v_job number; 
begin 
    dbms_job.submit(v_job, 'myproc;'); 
end; 
/

所以,當主叫用戶提交的INSERT INTO日期表,你的工作將很快解僱之後(只要你的DBA有設置至少1 job_queue_process來處理作業

+0

Hi DazzaL,正如你所說的,可以使用觸發器插入到日期表中並使用proc或通過定義作業填充臨時表。當數據量在臨時表中填充很小...但插入到日期表中我需要填充臨時表與大量的數據(約10k +行)涉及複雜的查詢(函數)。如果我從Web調用觸發器應用方面,它會像任何事情一樣慢下來。如果我們運行這個報告生成查詢Web應用程序端(沒有臨時表),生產服務器就會關閉......關閉Mohanish – 2013-02-11 17:30:26

+0

生成報告時,我們需要傳遞動態日期參數進行查詢。所以我試圖提供一個屏幕爲用戶保存日期在一個臨時表和填充臨時表,我需要調用過程來填充另一個臨時表用於報告生成(碧玉報告)。所以需要一些東西來輪詢填充日期列,以便我可以立即調用proc來填充報表臨時表 – 2013-02-11 17:37:08

+1

@MohanishTimble,這樣您就可以將作業提交爲加載表的GUI進程的一部分。即與我在觸發器示例中所做的相同,但只需將該dbms_job.submit作爲填充臨時表的客戶端例程的一部分即可。這會異步地解僱這個工作,所以不會放慢對「提交」的人的響應時間。 – DazzaL 2013-02-11 18:56:06