07第七章 包和子程序

上傳人:仙*** 文檔編號(hào):137930980 上傳時(shí)間:2022-08-19 格式:DOC 頁(yè)數(shù):4 大?。?2.73KB
收藏 版權(quán)申訴 舉報(bào) 下載
07第七章 包和子程序_第1頁(yè)
第1頁(yè) / 共4頁(yè)
07第七章 包和子程序_第2頁(yè)
第2頁(yè) / 共4頁(yè)
07第七章 包和子程序_第3頁(yè)
第3頁(yè) / 共4頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《07第七章 包和子程序》由會(huì)員分享,可在線閱讀,更多相關(guān)《07第七章 包和子程序(4頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 第七章 包和子程序 1.1 目標(biāo) 1. 過(guò)程和函數(shù) 2. 過(guò)程和函數(shù)在plsql中調(diào)用 3. 包 1.2 知識(shí)點(diǎn) 1. 過(guò)程和函數(shù)的作用,語(yǔ)法結(jié)構(gòu),參數(shù)的類型 2. 在plsql語(yǔ)句塊中調(diào)用函數(shù)和過(guò)程 3. 包和包體的作用,語(yǔ)法結(jié)構(gòu) 1.3 難點(diǎn) 1. 過(guò)程和函數(shù)的作用,語(yǔ)法結(jié)構(gòu),參數(shù)的類型 2. 包和包體的作用,語(yǔ)法結(jié)構(gòu) 1.4 講解內(nèi)容 前面Plsql是匿名的存儲(chǔ)過(guò)程,可以批量執(zhí)行sql操作,并且可以加入條件控制,但是每次執(zhí)行的plsql腳本不能在服務(wù)器端保存,而過(guò)程和函數(shù)可以將plsql語(yǔ)句塊按功能劃分,并保存起來(lái),實(shí)現(xiàn)代碼的復(fù)用,簡(jiǎn)單的講,過(guò)程

2、和函數(shù)是對(duì)plsql語(yǔ)句塊的封裝,是有名字的plsql語(yǔ)句塊。 1.4.1 過(guò)程 過(guò)程語(yǔ)法結(jié)構(gòu): Create or replace procedure 存儲(chǔ)過(guò)程名稱 as ?創(chuàng)建或重定義存儲(chǔ)過(guò)程名稱, Begin 執(zhí)行過(guò)程的語(yǔ)句塊… End; ?執(zhí)行語(yǔ)句塊用begin和end包圍,相當(dāng)于程序中的{},表示語(yǔ)句塊的開始和結(jié)束 Create or replace procedure 存儲(chǔ)過(guò)程名稱(參數(shù)1,參數(shù)2) as ?創(chuàng)建或重定義存儲(chǔ)過(guò)程名稱, Begin 執(zhí)行過(guò)程的語(yǔ)句塊… End; 要點(diǎn): 1. 參數(shù)默認(rèn)是輸入?yún)?shù),注明out為輸出參數(shù) in out為

3、輸入輸出參數(shù) 2. 沒(méi)有參數(shù)的過(guò)程和函數(shù),在過(guò)程名稱后面不用帶()括號(hào) 3. 有參數(shù)的過(guò)程和函數(shù),形式參數(shù)的數(shù)據(jù)類型不需要指定長(zhǎng)度 4. 局部變量放在 as 和begin之間,begin和end之間是plsql語(yǔ)句塊 示例: create or replace procedure pro1 as begin dbms_output.put_line('dd'); end; create or replace procedure pro2(v_val1 in out varchar2,v_val2 in out varchar2) as begin dbms_o

4、utput.put_line('v_val1:'||v_val1); dbms_output.put_line('v_val2:'||v_val2); end; 1.4.2 函數(shù) 函數(shù)的語(yǔ)法結(jié)構(gòu) 和過(guò)程類似,區(qū)別在于多了一個(gè)返回值 Create or replace function 函數(shù)名稱 return 類型 as ?創(chuàng)建或重定義函數(shù),必須帶return和返回一個(gè)數(shù)據(jù)的類型 Begin 函數(shù)執(zhí)行的語(yǔ)句塊 return 返回值 ?返回值,和創(chuàng)建函數(shù)聲明中返回類型要一致 End; 示例: create or replace functio

5、n fun1 return varchar2 as begin return 'ddd'; end; create or replace function fun2(v_val1 in out varchar2,v_val2 in out varchar2) return varchar2 as begin dbms_output.put_line('v_val1:'||v_val1); dbms_output.put_line('v_val2:'||v_val2); return 'ddd'; end; 1.4.3 過(guò)程和函數(shù)在plsql中調(diào)用 在plsql

6、語(yǔ)句塊中調(diào)用函數(shù)和過(guò)程 declare v_val1 varchar2(200):='aaaa'; v_val2 varchar2(200):='dddd'; v_result varchar2(400); begin --調(diào)用過(guò)程1 pro1; --調(diào)用過(guò)程2 pro2(v_val1,v_val2); --調(diào)用函數(shù)1 v_result:=fun1; --調(diào)用函數(shù)2 v_result:=fun2(v_val1,v_val2); end; 要點(diǎn): 1. 過(guò)程可以再sqlplus命令行方式下調(diào)用,也可以再plsql語(yǔ)句塊中調(diào)用,而函數(shù)只能在p

7、lsql語(yǔ)句塊中調(diào)用。 2. 過(guò)程在命令行下調(diào)用使用 call 過(guò)程名,在plsql中調(diào)用不需要call 1.4.4 包 包的概念是將某一系列的函數(shù)或過(guò)程進(jìn)行封裝打包以便于管理和方便使用,創(chuàng)建包分為創(chuàng)建包體和創(chuàng)建包體2部分 1.4.4.1 包頭 create or replace package pak1 as --定義數(shù)據(jù)類型 type curemptype is ref cursor; count int; --定義包的過(guò)程和函數(shù) procedure getrecord(curemp_ref out curemptype); end; 要點(diǎn):在包頭中定義

8、引用游標(biāo)類型和在plsql語(yǔ)句塊declare部分定義有一點(diǎn)區(qū)別,在類型名后多一個(gè)is 1.4.4.2 包體 create or replace package body pak1 as procedure getrecord(curemp_ref out curemptype) as begin open cur_emp for select * from emp; end; end; 要點(diǎn):返回引用游標(biāo)的存儲(chǔ)過(guò)程只在過(guò)程中打開游標(biāo) 1.5 作業(yè) 以scott示例用戶表為基礎(chǔ)編寫存儲(chǔ)過(guò)程 1. 編寫一個(gè)過(guò)程,通過(guò)參數(shù)傳遞部門編號(hào),查詢并打印相關(guān)部門

9、的員工姓名、工作、入職日期、薪金等詳細(xì)信息。 2. 編寫一個(gè)函數(shù),給工作是辦事員的員工加薪30%,給工作是銷售的加薪50%要求使用游標(biāo),函數(shù)返回修改的記錄個(gè)數(shù)。 3. 編寫一個(gè)可供java程序調(diào)用的存儲(chǔ)過(guò)程,過(guò)程參數(shù)定義為輸入輸出的引用游標(biāo),返回emp表的記錄集 4. 另外有一個(gè)網(wǎng)上商城的系統(tǒng),為了這個(gè)系統(tǒng)創(chuàng)建一個(gè)訂單處理的包,這個(gè)包中有一個(gè)存儲(chǔ)過(guò)程,用于刪除訂單,在刪除訂單的時(shí)候要求訂單式新建或中止?fàn)顟B(tài)的才可以刪除,否則拋出異常信息。還有一個(gè)函數(shù),用于計(jì)算指定訂單編號(hào)的總金額,每個(gè)訂單有1個(gè)或多個(gè)子項(xiàng),每個(gè)子項(xiàng)有單價(jià)和數(shù)量,函數(shù)有一個(gè)參數(shù)接收訂單編號(hào)返回訂單金額。 以上存儲(chǔ)過(guò)程和函數(shù)都要采用包的方式創(chuàng)建。

展開閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!