因為要同步一個表,所以每天要同步一次數據,但是對SQL不是精通的我,為了測試寫了一段代碼來測試定時功能
創建一個存儲過程,是用來插數據的,沒有輸出和輸出參數
create or replace procedure temp_pro as
begin
insert into demopa18 values('3','cloduy','女','23');
commit;
end temp_pro;
然后就是要設置定時調用這個存儲過程的命令了,主要是用到了oracle中的dbms_job包
SQL> variable num number;
SQL> begin
2? dbms_job.submit(:num,'temp_pro;',sysdate,
3? 'sysdate+1/360');
4? commit;
5? end;
6? /
其中首先定義個num變量,這個變量是用來存儲任務號的,任務號我估計是隨機產生的。然后接著是存儲過程名字,sysdate為下次執行的時間,'sysdate+1/360'為間隔時間,如果這里為空,這個任務在執行后是會被刪除的。就不能每次都定時執行了。關于定時執行的具體格式如下
dbms_job.submit( job out binary_integer,
what in archar2,
next_date in date,
interval in varchar2,
no_parse in boolean)
其中:
●job:輸出變量,是此任務在任務隊列中的編號;
●what:執行的任務的名稱及其輸入參數;
●next_date:任務執行的時間;
●interval:任務執行的時間間隔。
這樣的命令應該要切換到命令窗口去做,不能在SQL窗口做。