版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Oracle存儲(chǔ)過程和函數(shù)第七章預(yù)習(xí)檢查存儲(chǔ)過程如何定義函數(shù)如何定義本章目標(biāo)掌握存儲(chǔ)過程掌握函數(shù)子程序子程序是一個(gè)命名的PL/SQL塊,可以帶參數(shù)也可以不帶參數(shù),可以被調(diào)用,包含兩種:存儲(chǔ)過程和函數(shù)優(yōu)點(diǎn):模塊化可重用性可維護(hù)性安全性存儲(chǔ)過程為了執(zhí)行一定的任務(wù)而組合在一起的SQL或者PL/SQL語句集創(chuàng)建--創(chuàng)建簡(jiǎn)單無參數(shù)存儲(chǔ)過程createorreplaceprocedureaddStuWuCan
參數(shù)名參數(shù)類型in|out|inoutis|asbegin
代碼塊
異常處理end;調(diào)用存儲(chǔ)過程命令行:setserveroutputon;execute|exec
存儲(chǔ)過程名plsql中begin存儲(chǔ)過程名end;刪除存儲(chǔ)過程dropprocedure存儲(chǔ)過程名
注意事項(xiàng):存儲(chǔ)過程參數(shù)不帶取值范圍,in表示傳入,out表示輸出類型可以使用任意Oracle中的合法類型。變量帶取值范圍,后面接分號(hào)在判斷語句前最好先用count(*)函數(shù)判斷是否存在該條操作記錄用select
。。。into。。。給變量賦值在代碼中拋異常用
raise+異常名不帶參數(shù)的存儲(chǔ)過程--創(chuàng)建簡(jiǎn)單無參數(shù)存儲(chǔ)過程createorreplaceprocedureaddStuWuCanisbegininsertintogradevalues(seq_grade.nextval,'無參數(shù)測(cè)試');end;
/--調(diào)用執(zhí)行/*setserveroutputon;execaddStuWuCan;*/--命令行調(diào)用方式和sqlserver相同beginaddStuWuCan;--直接調(diào)用end;帶參數(shù)的存儲(chǔ)過程--創(chuàng)建帶輸入?yún)?shù)存儲(chǔ)過程createorreplaceprocedureaddstudaishurucanshu(snamevarchar2)isbegininsertintogradevalues(seq_grade.nextval,sname);end;
declaresnamevarchar2(50):='&sname1';beginaddstudaishurucanshu(sname);end;帶默認(rèn)值參數(shù)的存儲(chǔ)過程--創(chuàng)建帶輸入?yún)?shù)存儲(chǔ)過程---默認(rèn)值createorreplaceprocedureaddstudaishurucanshumorenzhi(snamevarchar2default'默認(rèn)值')isbegininsertintogradevalues(seq_grade.nextval,sname);--使用參數(shù)不用加單引號(hào)end;
begin
addstudaishurucanshumorenzhi();--不需要聲明變量,直接空著就會(huì)使用默認(rèn)值如果傳入?yún)?shù),會(huì)覆蓋默認(rèn)值end;默認(rèn)值參數(shù)被覆蓋的存儲(chǔ)過程--創(chuàng)建帶輸入?yún)?shù)存儲(chǔ)過程---默認(rèn)值被覆蓋的情況createorreplaceprocedureaddstudaishurucanshumorenzhi1(snamevarchar2default'默認(rèn)值')isbegininsertintogradevalues(seq_grade.nextval,sname);end;
declaresnamevarchar2(50):='&sname1';beginaddstudaishurucanshumorenzhi1(sname);--如果傳入?yún)?shù),會(huì)覆蓋默認(rèn)值end;解決參數(shù)對(duì)應(yīng)的存儲(chǔ)過程--創(chuàng)建帶輸入?yún)?shù)存儲(chǔ)過程---同時(shí)存在多個(gè)參數(shù)的時(shí)候,而且是有默認(rèn)值和無默認(rèn)值的混合起來,需要通過名字對(duì)應(yīng)方式解決,位置就可以不一致了createorreplaceprocedureaddstuduiying(snamexingcanvarchar2default'默認(rèn)值')isbegininsertintogradevalues(seq_grade.nextval,snamexingcan);end;
declaresnamevarchar2(50):='&sname1';beginaddstuduiying(snamexingcan=>sname);--如果傳入?yún)?shù),會(huì)覆蓋默認(rèn)值end;帶輸出參數(shù)的存儲(chǔ)過程
--創(chuàng)建帶輸出參數(shù)存儲(chǔ)過程createorreplaceprocedureaddstudaishuchucanshu(gidoutnumber,snamevarchar2)isbegininsertintogradevalues(seq_grade.nextval,sname);selectmax(gradeid)intogidfromgrade;dbms_output.put_line('編號(hào)是:'||gid);end;
declaresnamevarchar2(50):='&sname1';gradeidnumber(6);beginaddstudaishuchucanshu(gradeid,sname);dbms_output.put_line('編號(hào)是:'||gradeid);end;
帶輸入輸出參數(shù)的存儲(chǔ)過程
--創(chuàng)建帶輸入輸出參數(shù)存儲(chǔ)過程createorreplaceprocedureaddstudaishurushuchucanshu(snameinoutvarchar2)isbegininsertintogradevalues(seq_grade.nextval,sname);sname:='修改以后的值';end;
declaresnamevarchar2(50):='&sname1';beginaddstudaishurushuchucanshu(sname);--調(diào)用時(shí)順序保存一致,不用寫出out關(guān)鍵字,但是sqlserver需要寫出來dbms_output.put_line('編號(hào)是:'||sname);end;函數(shù)的創(chuàng)建--創(chuàng)建函數(shù)createorreplacefunctionaddhanshureturnnumberisgidgrade.gradeid%TYPE;begin
--declareidsnumber(6);--不能出現(xiàn)定義selectmax(gradeid)intogidfromgrade;returngid;end;--調(diào)用declaregidnumber(6);begingid:=addhanshu();dbms_output.put_line('編號(hào)是:'||gid);end;函數(shù)的刪除dropfunction函數(shù)名;函數(shù)和存儲(chǔ)過程區(qū)別返回值的區(qū)別
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GB-T 28717-2012飼料中丙二醛的測(cè)定 高效液相色譜法》專題研究報(bào)告
- 《GBT 13891-2008建筑飾面材料鏡向光澤度測(cè)定方法》專題研究報(bào)告
- 《GBT 21689-2008 木工機(jī)床 窄帶磨光機(jī) 術(shù)語》專題研究報(bào)告
- 《GBT 15076.12-2008鉭鈮化學(xué)分析方法 鉭中磷量的測(cè)定》專題研究報(bào)告
- 《GB 21519-2008儲(chǔ)水式電熱水器能效限定值及能效等級(jí)》專題研究報(bào)告
- 道路安全與機(jī)械常識(shí)課件
- 道路交通安全教案課件
- 2026年貴州畢節(jié)市高職單招語文試題含答案
- 2025-2026年蘇課新版五年級(jí)英語上冊(cè)期末綜合考核試題及答案
- 道岔安全培訓(xùn)課件
- 北京大興機(jī)場(chǎng)案例賞析64課件
- DBJT15-140-2018 廣東省市政基礎(chǔ)設(shè)施工程施工安全管理標(biāo)準(zhǔn)
- DB43∕T 1859-2020 研學(xué)產(chǎn)品設(shè)計(jì)與評(píng)價(jià)規(guī)范
- 醫(yī)務(wù)部會(huì)議管理制度范本
- Q-JJJ 9002-2025 鐵路建設(shè)項(xiàng)目安全穿透式管理實(shí)施指南
- 員工韌性能力培養(yǎng)-洞察及研究
- alc墻板安裝培訓(xùn)課件
- 2025年7月遼寧省普通高中學(xué)業(yè)水平合格性考試生物試題(原卷版)
- 抖音直播違規(guī)考試題及答案
- T/CAEPI 34-2021固定床蜂窩狀活性炭吸附濃縮裝置技術(shù)要求
- 購銷合同解除退款協(xié)議書
評(píng)論
0/150
提交評(píng)論