Oracle的sql开发之包技术实战
生活随笔
收集整理的這篇文章主要介紹了
Oracle的sql开发之包技术实战
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
前言: 包(package)的主要作用是用于邏輯組合相關(guān)的pl/sql類型,比如記錄類型或者集合類型,pl/sql游標或者游標聲明以及pl/sql子程序,還可以包含任何可以在塊的聲明區(qū)中定義的變量。一旦創(chuàng)建了一個包,包就會被存儲在Oracle數(shù)據(jù)庫中。可以將包放到共享池中,以便被多個應(yīng)用程序共享和調(diào)用。一個pl/sql包包括包規(guī)范和包體兩部分。平時調(diào)試經(jīng)常使用的dbms_output就是oracle的一個系統(tǒng)包。
????一>一個簡單的包的包規(guī)范和包體小例子
create?or?replace?package?emp_pkg?as-----定義集合類型type?emp_tab?is?table?of?emp%rowtype?index?by?binary_integer;-----在包規(guī)范中定義一個記錄類型type?emprectyp?is?record(emp_no?number,sal?number);----定義一個游標申明cursor?desc_salary?return?emp;----定義雇傭員工的過程procedure?hire_employee(p_empno?number,p_ename?varchar2,p_job?varchar2,p_mgr?number,p_sal?number,p_comm?number,p_deptno?number);-----定義解雇員工的過程procedure?fire_employee(p_emp_id?number); end?emp_pkg;create?or?replace?package?body?emp_pkg as-----定義游標申明的游標體cursor?desc_salary?return?emp?is?select?*?from?emp?order?by?sal?desc;-----定義雇傭員工的具體實現(xiàn)procedure?hire_employee(p_empno?number,p_ename?varchar2,p_job?varchar2,p_mgr?number,p_sal?number,p_comm?number,p_deptno?number)?isbegininsert?into?emp?(empno)?values('3360');end;----定義解雇員工的具體實現(xiàn)procedure?fire_employee(p_emp_id?number)?isbegin----從emp表中刪除員工信息delete?from?emp?where?empno=p_emp_id;end; end?emp_pkg;????二>dbms_job包創(chuàng)建定時任務(wù)使用
create?table?t(id?varchar2(30),name?varchar2(30) ); create?or?replace?procedure?proce_t?is begininsert?into?t(id,?name)?values('1',?to_char(sysdate,?'yyyy-mm-dd?hh24:mi:ss'));commit; end?proce_t; / declarejobno?number; begindbms_job.submit(jobno,'proce_t;',sysdate,'sysdate+1/24/60');commit; end; select?*?from?user_jobs; select?*?from?t;
轉(zhuǎn)載于:https://blog.51cto.com/11218855/2328101
總結(jié)
以上是生活随笔為你收集整理的Oracle的sql开发之包技术实战的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2016 大数据版图
- 下一篇: Vector Enumeration