oracle學習筆記 第十五章 排程作業

2021-08-24 19:27:55 字數 3654 閱讀 8311

--資料庫作業:dbms_job

-- dbms_job 支援儲存過程在系統的管理下週期性自動執行而無須使用者介入

-- 資料庫引數檔案(init.ora)中有兩個引數控制snp程序的屬性:job_queue_proceses,job_queue_interval

-- job_queue_proceses 值在0--36,表示可以同時執行的程序數,0表示系統禁止作業執行

-- job_queue_interval 值在1--3600,表示兩個程序喚醒的間隔,程序按制定的時間進行睡眠

-- 執行作業:

-- 提交 submit,其過程的語法:

-- procedure submit(job out binary_integer,what in varchar2,next_date in date default sysdate,inteval in varchar2 default null,no_parse in boolean default false)

-- 引數意義:

-- job 作業號,建立作業時,作業被賦值乙個作業號,只要該作業存在,作業號不變,作業號在例項中 是唯一的

-- 當乙個作業編號提交,該作業就被賦值了乙個作業號,該作業號由序列號 sys.jobseq 生成的

-- what 組成作業的pl/sql**,通常,該**是儲存過程的呼叫,所呼叫的procedure可以帶任何個數的引數,但引數型別必須是 in

-- 儲存過程中的引數必須用兩個單引號引起來

-- next_date 作業下次執行的日期,時間間隔

-- 'sysdate + 7',間隔為一周

-- 'next_date(trunc(sysdate),''friday''+12/24)'每週五中午執行

-- sysdate + 1/24 每小時執行

-- interval 作業再次執行時間的函式,該函式的值必須是乙個時間值或為null

-- no_parse 如果為true,作業在第一次執行時才進行語法分析,如果為false,作業在提交時就對其分析,如果作業引用的資料庫物件不存在但又必須提交該作業時,可以將該引數設定為true

-- 例子1:

---- 建立乙個procedure,功能可以實現更新資料庫表

create or replace procedure p_update_age(i_emp_no char)

as v_age int;

begin

select emp_age into v_age from emp_m

where emp_no=i_emp_no;

update emp_m set emp_age = v_age + 1

where emp_no=i_emp_no;

end;

---- 提交作業,每隔10秒b行一次 p_update_age

declare

v_jobnum number;

begin

dbms_job.submit(v_jobnum,'p_update_age(''0001'');',sysdate,'sysdate + (10/(24*60*60))');

commit;--一定要有commit,如果沒有該作業會話結束後,則事務將自動重新開始

end ;

-- --例子2:

create or replace procedure p_temp_insert

asbegin

insert into temp_insert values(temp_seq.nextval,sysdate);

end;

---declare

v_jobnum number :=1;

begin

dbms_job.submit(v_jobnum,'p_temp_insert;',sysdate,'sysdate + (5/(24*60*60))');

commit;

end;

-- 要啟動作業執行必須提交包括呼叫dbms_job.submit語句的事物.

-- 執行命令:run,語法:dbms_job.run(job in binary_integer)

-- 作用,立即執行該作業( 不論作業處於什麼狀態下)

-- 其他 dbms_job 包的子程式:

-- isubmit 由其它過程使用指定的作業號i入作業的介面程式,程式設計師不能在其它程式**中直接使用該程式,只能使用submit

-- run 強迫指定的作業執行在當前程序中

-- remove 從作業佇列中刪除乙個作業

-- broken 標記作業中斷或沒有中斷

-- change 變更作業中任何可配置的字段

-- what 變更what欄位

-- next_date 變更next_date欄位

-- interval 變更interval欄位

-- instance 變更instance欄位

-- user_export 返回需要重新建立作業排程的文字

-- check_privs 確定作業號可訪問

-- 刪除作業

-- romove(job in binary_integer)

-- 中斷作業

-- broken(job in binary_integer ,broken in boolean,next_date in date default sysdate)

-- 變更作業

-- procedure change(job in binary_integer,what in varchar2 default null,next_date in date default null,interval in varchar2 default null)

-- procedure what(job in binary_integer,what in varchar2 )

-- procedure next_date(job in binary_integer,next_date in date)

-- procedure interval(job in binary_integer,interval in varchar2)

-- 例項仿射性:指定乙個例項來執行給定的作業,這就叫例項仿射性,例項由過程 instance指定,語法是:

-- procedure instance(job in binary_integer,instance in binary_integer,force in boolean default false)

-- 匯出作業

-- procedure user_export(job in binary_integer,mycall in out varchar2);

-- 例子

declare

v_jobtext varchar2(1000);

begin

dbms_job.user_export(5,v_jobtext);

dbms_output.put_line(v_jobtext);

end;

-- 檢查作業的許可權:有兩個功能,1,校驗給定的作業號是否存在,2,鎖定資料字典中響應的行以便程式對其進行修改

-- porcedure check_privs(job in binary_integer)

-- 在資料字典中觀察作業:dba_jobs,user_jobs

select * from user_jobs;

UNP 學習筆記 第十五章

1.描述符傳遞 接收傳送者的憑證用到的時候再看 2.struct sockaddr un 3.socketpair 4.書上有三四個例子,跟著學習一下如何建立乙個unix域套接字1.基礎 2.socketpair 1.unix域套接字往往比通訊兩端位於同乙個主機的tcp套接字快出一倍。2.unix域...

第十五章預習

public class yuxi15 else 字串的比較 字串1.equals 字串2 比較兩個字串的值是否相同,返回boolean型別的值.如果相同,則返回真值,否則返回假值.字串1.equalsignorecase 字串2 忽略大小寫比較字串1和字串2.如果都相同則返回真值 否則返回假值 改...

C primer 第十五章筆記 初稿

抽象,繼承與動態繫結都是基礎的方法。新標準新增override關鍵字,用於顯示宣告改寫基類虛函式,乙個重要的好處是讓編譯器幫助我們發現一些覆蓋時的失誤。動態繫結一般通過指標 引用 實現。虛函式派生類 final關鍵字 虛函式返回的型別通常與基函式匹配,但如果返回類本身指標可以不同,前提是派生類到基類...