oracle强大的包,ORACLE 程序包
程序包由PL/SQL程序元素(變量,類型)和匿名PL/SQL(游標),命名PL/SQL 塊(存儲過程和函數)組成。
程序包可以被整體加載到內存中,這樣可以大大加快程序包中任何一個組成部分的訪問速度。
程序包由規范和包主題組成:
規范:
用于規定程序包中可以使用哪些變量,類型,游標和子程序(該規范一定要在“包主體”之前被創建)
例子:
創建一個程序包“規范”,首先在該程序中聲明一個可以獲取指定部門的平均工資的函數,然后再聲明一個可以實現按照指定比例上調指定職務的工資的存儲過程
create or replacepackage?pack_emp is
function?fun_avg_sal(num_deptno number)?return number;--獲取指定部門的平均工資
procedure?pro_regulate_sal(var_job varchar2,num_proportion number);--按照指定比例上調指定職務的工資
end pack_emp;
/
主體:
包含了在規范中聲明的游標,過程和函數的實現代碼,還有內部變量。
創建程序包pack_emp的主體,在該主體中實現對應“規范”中聲明的函數和存儲過程:
create or replacepackage body?pack_emp is
function fun_avg_sal(num_deptno number) return number is
num_avg_sal number;
begin
select avg(sal) into num_avg_sal from emp
where deptno=num_deptno;
return(num_avg_sal);
exception
when no_data_found then
dbms_output.put_line('該部門編號不存在雇員記錄');
return 0;
end fun_avg_sal;
procedure pro_regulate_sal(var_job varchar2,num_proportion number) is
begin
update emp
set sal =sal*(1+num_proportion)
where job=var_job;
end pro_regulate_sal;
end pack_emp;
/
調用該包中的函數和過程:
declare
num_deptno emp.deptno%type;
var_job emp.job%type;
num_avg_sal emp.sal%type;
num_proportion number;
begin
num_deptno:=10;
num_avg_sal:=pack_emp.fun_avg_sal(num_deptno);
dbms_output.put_line(num_deptno||'號部門的平均工資是:'||num_avg_sal);
var_job:='SALESMAN';
num_proportion:=0.1;
pack_emp.pro_regulate_sal(var_job,num_proportion);
end;
/
20181220 Oracle程序包基本開發邏輯
做事情,開始也許比較迷茫,也可能工具不會,也可能語言不會,但不要害怕 多去思考而不是盲目的開始工作,盲目的聽從,程序開發都是不斷訓練自己的思維能力. 做每件事情都是有意義的,思考為什么這么做,這么做的 ...
Oracle程序包
程序包由兩部分構成:規范(specification)和主體(body). 創建表 create table PEOPLE ( ID NUMBER primary key not null, NAME ...
Oracle數據庫程序包全局變量的應用
1 前言? 在程序實現過程中,經常用遇到一些全局變量或常數.在程序開發過程中,往往會將該變量或常數存儲于臨時表或前臺程序的全局變量中,由此帶來運行效率降低或安全隱患< ...
[強烈推薦]ORACLE PL/SQL編程詳解之七:程序包的創建與應用(聰明在于學習,天才在于積累!)
原文:[強烈推薦]ORACLE PL/SQL編程詳解之七:程序包的創建與應用(聰明在于學習,天才在于積累!) [強烈推薦]ORACLE PL/SQL編程詳解之七: 程序包的創建與應用(聰明在于學習,天 ...
Oracle編程入門經典 第11章 過程、函數和程序包
目錄 11.1????????? 優勢和利益... 1 11.2????????? 過程... 1 11.2.1?????? 語法... 2 11.2.2?????? 建立或者替換... 2 11.2 ...
Oracle存儲過程和程序包
一.為什么要用存儲過程? 如果在應用程序中經常需要執行特定的操作,可以基于這些操作簡歷一個特定的過程.通過使用過程可以簡化客戶端程序的開發和維護,而且還能提高客戶端程序的運行性能. 二.過程的優點? ...
Oracle學習筆記十四 內置程序包
擴展數據庫的功能 為 PL/SQL 提供對 SQL 功能的訪問 用戶 SYS 擁有所有程序包 是公有同義詞 可以由任何用戶訪問 一些內置程序包 程序包名稱 說明 STANDARD和DBMS_STAND ...
Oracle學習筆記十二 子程序(存儲過程、自定函數)和程序包
子程序 子程序:命名的 PL/SQL 塊,編譯并存儲在數據庫中. ? 子程序的各個部分: 1.聲明部分 2.可執行部分 3.異常處理部分(可選) 子程序的分類: 1.過程 - 執行某些操作 2.函數 ...
Oracle基礎<;4>;--程序包
一:程序包定義(包括1.程序包規范 2.程序包主體) 程序包是一種數據庫對象,它是對相關pl/sql 類型.子程序.游標.異常.變量和常量的封裝. 1.程序包規范:可以聲明類型.變量.常量.異常.游標 ...
隨機推薦
Bootstrap css背景圖片的設置
一.?網頁中添加圖片的方式有兩種 一種是:通過標簽直接插入到html中 另一種是:通過css背景屬性添加 居中方法:水平居中的text-align:center 和 margin ...
JQuery操作HTML文檔
一.JQuery選擇元素 1.$("p").click(function(){$(this).hide();} 點擊HTML頁面的任何p元素都會隱藏該p元素 2.$("# ...
Centos中安裝vim
Centos, 默認沒有安裝VIM, 所以要當然要安裝了, 直接yum install vim是不行的, 首先: yum install vim* 會看到vim-enhanced這個包,沒錯, 我們要 ...
js add media query
var msViewportStyle = document.createElement("style"); msViewportStyle.appendChild( docume ...
substr vs substring
javascript(js)中的 substring和substr方法 Posted on?2009-02-26 14:14?chinaifne?閱讀(33698) 評論(0)?編輯?收藏 1.sub ...
面向對象的JS代碼
在下面的例子中可以找到強類型語言中所描述的類,屬性,方法,對象.
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的oracle强大的包,ORACLE 程序包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql解析json oracle,ora
- 下一篇: 手动添加linux用户,Linux入门教