![OraclePLSQL基礎(chǔ)培訓(xùn)課件(PPT 162頁)_第1頁](http://file4.renrendoc.com/view/bb1cda70e50c742e58474b51dcf16b86/bb1cda70e50c742e58474b51dcf16b861.gif)
![OraclePLSQL基礎(chǔ)培訓(xùn)課件(PPT 162頁)_第2頁](http://file4.renrendoc.com/view/bb1cda70e50c742e58474b51dcf16b86/bb1cda70e50c742e58474b51dcf16b862.gif)
![OraclePLSQL基礎(chǔ)培訓(xùn)課件(PPT 162頁)_第3頁](http://file4.renrendoc.com/view/bb1cda70e50c742e58474b51dcf16b86/bb1cda70e50c742e58474b51dcf16b863.gif)
![OraclePLSQL基礎(chǔ)培訓(xùn)課件(PPT 162頁)_第4頁](http://file4.renrendoc.com/view/bb1cda70e50c742e58474b51dcf16b86/bb1cda70e50c742e58474b51dcf16b864.gif)
![OraclePLSQL基礎(chǔ)培訓(xùn)課件(PPT 162頁)_第5頁](http://file4.renrendoc.com/view/bb1cda70e50c742e58474b51dcf16b86/bb1cda70e50c742e58474b51dcf16b865.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、Oracle PL/SQL 基礎(chǔ)培訓(xùn).第1頁,共162頁。目錄 課程介紹 基礎(chǔ)知識 循環(huán)執(zhí)行 條件轉(zhuǎn)移 游標(biāo)與數(shù)據(jù) 寄存對象 內(nèi)置函數(shù) 異常處理.第2頁,共162頁。課程介紹教程概述本教程假設(shè)讀者已了解關(guān)系型數(shù)據(jù)庫基本原理,明白表、視圖、主鍵、索引、外鍵、約束、關(guān)聯(lián)等基本概念,熟悉Oracle SQL本教程定位是Oracle PL/SQL簡明、實用教程,偏向于基本PL/SQL開發(fā),若進一步學(xué)習(xí)PL/SQL高級功能,請參閱其他教程或書籍文檔課程目標(biāo)是完成課程后可進行大部分Oracle PL/SQL開發(fā)(編寫)適用對象學(xué)習(xí)過Oracle SQL,未使用過Oracle PL/SQL的讀者使用過SQL
2、 Server的Transact-SQL或其他數(shù)據(jù)庫版本的”T-SQL”,未使用過Oracle PL/SQL的讀者.第3頁,共162頁。目錄 課程介紹 基礎(chǔ)知識 循環(huán)執(zhí)行 條件轉(zhuǎn)移 游標(biāo)與數(shù)據(jù) 寄存對象 內(nèi)置函數(shù) 異常處理.第4頁,共162頁?;A(chǔ)知識PL/SQL介紹Hello WorldPL/SQL塊分析變量聲明運算符號.第5頁,共162頁。基礎(chǔ)知識-PL/SQL介紹PL/SQL概述PL/SQL是Procedural Language extensions to SQL簡寫將過程結(jié)構(gòu)與SQL無縫集成,實現(xiàn)數(shù)據(jù)結(jié)構(gòu)和算法,最終實現(xiàn)對數(shù)據(jù)庫的數(shù)據(jù)處理和其他相關(guān)功能PL/SQL是塊結(jié)構(gòu)化語言,塊是
3、PL/SQL基本單元PL/SQL擴充變量和類型條件語句循環(huán)語句.第6頁,共162頁?;A(chǔ)知識-Hello World參考代碼.第7頁,共162頁?;A(chǔ)知識-PL/SQL塊分析基本語法語法分析PL/SQL是塊結(jié)構(gòu)程序,使用DECLARE、BEGIN、EXCEPTION、END關(guān)鍵字聲明塊,塊包含聲明部分、執(zhí)行部分、異常部分使用- 做單行注釋,/* */做多行注釋在DECLARE部分聲明變量NULL語句表示什么都不做RETURN語句,顯示退出PL/SQL塊執(zhí)行PL/SQL塊可以嵌套.第8頁,共162頁?;A(chǔ)知識聲明變量基本語法變量類型聲明變量示例變量作用域.第9頁,共162頁。語法說明variab
4、le_name 變量名稱CONSTANT 聲明為常量Datatype 數(shù)據(jù)類型NOT NULL 變量不能為空(必須有賦值):= 賦值符號DEFAULT 賦默認(rèn)值initial_value 初始值基礎(chǔ)知識-聲明變量-基本語法.第10頁,共162頁。基礎(chǔ)知識-聲明變量-變量類型數(shù)字:NUMBER(p,s) :p是數(shù)字長度,s是小數(shù)保留位,如NUMBER(7,2),就是最多保存7位的數(shù)字,其中小數(shù)點前是5位,小數(shù)點后是2位。p,s可以為空,一般為空字符VARCHAR2:存放可變長字符串,有最大長度限制CHAR:字符型,固定長度CLOB:大對象字符LONG:長字符型日期DATE布爾BOOLEAN二進制
5、RAW:存儲多媒體數(shù)據(jù),如圖象、聲音、視頻等BLOB:大對象如圖象、聲音、視頻等.第11頁,共162頁?;A(chǔ)知識-聲明變量-變量類型引用:%TYPE :引用某個表某個字段的類型和長度,%ROWTYPE :引用某個表全部字段的類型和長度記錄Record Type:復(fù)合多個其他類型,其中定義Record Type語法如下TYPE record_type is RECORD( record_field1 field1type NOT NULL := expr1 ; record_field2 field2type NOT NULL := expr2 ; record_fieldn fieldntyp
6、e NOT NULL := exprn ;)record_type是定義的新的記錄類型record_field1 record_fieldn是記錄類型字段名稱Field1type fieldntype是各字段類型NOT NULL可選項,指定字段是否可以為空Express1expressn給各字段賦初始值.第12頁,共162頁?;A(chǔ)知識-聲明變量-聲明變量示例變量聲明:.第13頁,共162頁?;A(chǔ)知識-聲明變量-聲明變量示例變量賦值:.第14頁,共162頁?;A(chǔ)知識-聲明變量-變量作用域作用域:PL/SQL變量作用域從變量聲明開始,到代碼塊結(jié)束子塊聲明的變量,對塊不可見字塊同名變量會覆蓋父塊變量
7、定義父塊時指定塊名,在字塊通過父塊名.變量名,引用父塊同名變量.第15頁,共162頁?;A(chǔ)知識-運算符號算術(shù)運算符關(guān)系運算符邏輯運算符.第16頁,共162頁?;A(chǔ)知識-運算符號算術(shù)運算符號+ 加 1+1- 減 2-1* 乘 2*3/ 除 4/2| 字符連接 Beijing | 2008.第17頁,共162頁。基礎(chǔ)知識-運算符號關(guān)系運算符號= 等于 ,1=1 不等于, 21 大于,21 小于, 1= 大于等于, 2=1= 小于等于,1=2IS NULL 為空,沒有值,不是空字符串IS NOT NULL 不為空,有值BETWEEN AND 檢索兩值之間的內(nèi)容,2 BETWEEN 1 AND 3IN
8、檢索匹配列表中的值LIKE檢索匹配字符樣式的數(shù)據(jù).第18頁,共162頁。基礎(chǔ)知識-運算符號邏輯運算符號AND 兩個為真則結(jié)果為真OR 一個為真即為真NOT 取相反的邏輯值.第19頁,共162頁。目錄 課程介紹 基礎(chǔ)知識 循環(huán)執(zhí)行 條件轉(zhuǎn)移 游標(biāo)與數(shù)據(jù) 寄存對象 內(nèi)置函數(shù) 異常處理.第20頁,共162頁。條件轉(zhuǎn)移IF THENIF THEN ELSEIF THEN ELSIF.第21頁,共162頁。條件轉(zhuǎn)移-IF THEN語法IF 條件判定為真 THEN 可執(zhí)行語句塊END IF;示例.第22頁,共162頁。條件轉(zhuǎn)移-IF THEN示例.第23頁,共162頁。條件轉(zhuǎn)移-IF THEN ELSE語
9、法IF 條件判定為真 THEN 可執(zhí)行語句塊1ELSE 可執(zhí)行語句塊2END IF;示例.第24頁,共162頁。條件轉(zhuǎn)移-IF THEN ELSE示例.第25頁,共162頁。條件轉(zhuǎn)移-IF THEN ELSIF語法IF 條件判定為真 THEN 可執(zhí)行語句塊1ELSIF 可執(zhí)行語句塊2.ELSIF 可執(zhí)行語句塊NEND IF;示例.第26頁,共162頁。條件轉(zhuǎn)移-IF THEN ELSIF示例.第27頁,共162頁。目錄 課程介紹 基礎(chǔ)知識 循環(huán)執(zhí)行 條件轉(zhuǎn)移 游標(biāo)與數(shù)據(jù) 寄存對象 內(nèi)置函數(shù) 異常處理.第28頁,共162頁。循環(huán)執(zhí)行LOOPWHILE LOOPFOR LOOP.第29頁,共162
10、頁。循環(huán)執(zhí)行-LOOP語法LOOP 可執(zhí)行語句塊EXIT WHEN 條件判定END LOOP;說明LOOP是無限循環(huán),可使用EXIT顯式退出LOOP循環(huán)EXIT有兩種格式:IF.THEN EXIT END IF和EXIT WHENEXIT語句必須放在循環(huán)內(nèi)EXIT可以出現(xiàn)多次,第一個EXIT執(zhí)行后,馬上退出循環(huán)EXIT只能退出循環(huán),不能退出PL/SQL塊,要退出PL/SQL塊,使用RETURN;.第30頁,共162頁。循環(huán)執(zhí)行-LOOP示例.第31頁,共162頁。循環(huán)執(zhí)行-LOOP示例.第32頁,共162頁。循環(huán)執(zhí)行-WHILE LOOP語法WHILE 條件判定 LOOP 可執(zhí)行語句塊END
11、LOOP;說明每次執(zhí)行“可執(zhí)行語句塊”前,先判斷“條件判定”是否為TRUE,因此循環(huán)有可能一次也不執(zhí)行如果“條件判定”一直為TRUE,則循環(huán)無限進行下去,注意在“可執(zhí)行語句”部分設(shè)置“條件判定”可用EXIT顯式退出當(dāng)前循環(huán),EXIT有兩種格式:IF.THEN EXIT END IF和EXIT WHENEXIT語句必須放在循環(huán)內(nèi)EXIT可以出現(xiàn)多次,第一個EXIT執(zhí)行后,馬上退出循環(huán)EXIT只能退出循環(huán),不能退出PL/SQL塊,要退出PL/SQL塊,使用RETURN;.第33頁,共162頁。循環(huán)執(zhí)行-WHILE LOOP示例.第34頁,共162頁。循環(huán)執(zhí)行-WHILE LOOP示例.第35頁,共
12、162頁。循環(huán)執(zhí)行-WHILE LOOP示例.第36頁,共162頁。循環(huán)執(zhí)行-WHILE語法FOR 計數(shù)器變量 IN REVERSE 低界值.高界值 LOOP 可執(zhí)行語句塊END LOOP;說明是每次執(zhí)行“可執(zhí)行語句塊”前,先判斷“條件判定”是否為TRUE,因此循環(huán)有可能一次也不執(zhí)行可用EXIT顯式退出當(dāng)前循環(huán),EXIT有兩種格式:IF.THEN EXIT END IF和EXIT WHENEXIT語句必須放在循環(huán)內(nèi)EXIT可以出現(xiàn)多次,第一個EXIT執(zhí)行后,馬上退出循環(huán)EXIT只能退出循環(huán),不能退出PL/SQL塊,要退出PL/SQL塊,使用RETURN;.第37頁,共162頁。循環(huán)執(zhí)行-FOR
13、 LOOP示例.第38頁,共162頁。循環(huán)執(zhí)行-WHILE LOOP示例.第39頁,共162頁。循環(huán)執(zhí)行-WHILE LOOP示例.第40頁,共162頁。目錄 課程介紹 基礎(chǔ)知識 循環(huán)執(zhí)行 條件轉(zhuǎn)移 游標(biāo)與數(shù)據(jù) 寄存對象 內(nèi)置函數(shù) 異常處理.第41頁,共162頁。游標(biāo)與數(shù)據(jù)概念分類屬性動作聲明游標(biāo)使用游標(biāo)隱式游標(biāo)SELECT INTO.第42頁,共162頁。游標(biāo)與數(shù)據(jù)-游標(biāo)概念概念游標(biāo)是一個機制,通過這個機制可以給一個SQL語句命名,并操作該SQL返回的數(shù)據(jù)或者使用該SQL返回的數(shù)據(jù)操作其他的數(shù)據(jù)分類顯式游標(biāo):顯式聲明游標(biāo),且由代碼管理游標(biāo)生命周期隱式游標(biāo):非顯式聲明游標(biāo),由系統(tǒng)管理游標(biāo)生命周
14、期.第43頁,共162頁。游標(biāo)與數(shù)據(jù)-屬性動作屬性清單操作動作.第44頁,共162頁。游標(biāo)與數(shù)據(jù)-聲明游標(biāo)語法示例聲明游標(biāo)指向所有部門聲明游標(biāo)指向所有參數(shù)指定部門的員工.第45頁,共162頁。游標(biāo)與數(shù)據(jù)-使用游標(biāo)單重循環(huán)LOOP.END LOOPWHILE.LOOP.END LOOPFOR.LOOP.END LOOP.第46頁,共162頁。游標(biāo)與數(shù)據(jù)-使用游標(biāo)-LOOP.END LOOP關(guān)鍵代碼塊.第47頁,共162頁。游標(biāo)與數(shù)據(jù)-使用游標(biāo)-LOOP.END LOOP示例.第48頁,共162頁。游標(biāo)與數(shù)據(jù)-使用游標(biāo)-LOOP.END LOOP示例.第49頁,共162頁。游標(biāo)與數(shù)據(jù)-使用游標(biāo)-W
15、HILE.LOOP.END LOOP關(guān)鍵代碼塊.第50頁,共162頁。游標(biāo)與數(shù)據(jù)-使用游標(biāo)-WHILE.LOOP.END LOOP示例.第51頁,共162頁。游標(biāo)與數(shù)據(jù)-使用游標(biāo)-WHILE.LOOP.END LOOP示例.第52頁,共162頁。游標(biāo)與數(shù)據(jù)-使用游標(biāo)-FOR.LOOP.END LOOP關(guān)鍵代碼塊.第53頁,共162頁。游標(biāo)與數(shù)據(jù)-使用游標(biāo)-FOR.LOOP.END LOOP示例.第54頁,共162頁。游標(biāo)與數(shù)據(jù)-使用游標(biāo)-FOR.LOOP.END LOOP示例.第55頁,共162頁。游標(biāo)與數(shù)據(jù)-使用游標(biāo)-FOR.LOOP.END LOOP示例.第56頁,共162頁。游標(biāo)與數(shù)據(jù)-
16、使用游標(biāo)-FOR.LOOP.END LOOP示例.第57頁,共162頁。游標(biāo)與數(shù)據(jù)-使用游標(biāo)多重循環(huán)FOR.LOOP.END LOOP.第58頁,共162頁。游標(biāo)與數(shù)據(jù)-使用游標(biāo)-FOR.LOOP.END LOOP示例.第59頁,共162頁。游標(biāo)與數(shù)據(jù)-隱式游標(biāo)SELECT INTO背景從數(shù)據(jù)庫中獲取數(shù)據(jù)到變量時,如果相關(guān)SQL只返回低于1條記錄,使用顯式游標(biāo)過于麻煩,Oracle提供SELECT INTO快速實現(xiàn)改功能。所有DML語句執(zhí)行時創(chuàng)建一個隱式游標(biāo),所以SELECT INTO也是游標(biāo),不過其創(chuàng)建和打開、關(guān)閉全部由ORACLE自動完成語法.第60頁,共162頁。游標(biāo)與數(shù)據(jù)-隱式游標(biāo)SE
17、LECT INTO示例.第61頁,共162頁。游標(biāo)與數(shù)據(jù)-隱式游標(biāo)SELECT INTO序列取序列值,序列是一種數(shù)據(jù)庫對象,就像一個自增長的計數(shù)器可以創(chuàng)建時指定初始值和最大值,以及增長步長(均勻增量)序列有currentVal和nextVal屬性分別是序列當(dāng)前值和序列下一值可通過s_seq_name.currentVal和s_seq_name.nextVal獲取值每次調(diào)用nextVal,序列就會自動按設(shè)定步長增長語法.第62頁,共162頁。游標(biāo)與數(shù)據(jù)-隱式游標(biāo)SELECT INTO示例.第63頁,共162頁。游標(biāo)與數(shù)據(jù)-隱式游標(biāo)SELECT INTO示例.第64頁,共162頁。游標(biāo)與數(shù)據(jù)-隱式
18、游標(biāo)SELECT INTO示例.第65頁,共162頁。目錄 課程介紹 基礎(chǔ)知識 循環(huán)執(zhí)行 條件轉(zhuǎn)移 游標(biāo)與數(shù)據(jù) 寄存對象 內(nèi)置函數(shù) 異常處理.第66頁,共162頁。異常處理什么是異常預(yù)定義異常自定義異常處理異常關(guān)鍵字OTHERS編譯指令EXCEPTION_INIT.第67頁,共162頁。異常處理-什么是異常概述PL/SQL運行時有可能會發(fā)生錯誤或警告,如除數(shù)為零,沒有找到數(shù)據(jù),DML操作違反數(shù)據(jù)庫對象約束等,這種運行時錯誤就稱為異常,異常是一種錯誤形態(tài)ORACLE將所有已知底層錯誤用一系列錯誤代碼標(biāo)記,并對應(yīng)相應(yīng)錯誤信息描述ORACLE將部分已知底層SQL或者硬件錯誤,封裝成異常,并提供異常處
19、理機制處理異常對于業(yè)務(wù)邏輯上的錯誤,需要用戶自定義異常來描述和控制異常機制實現(xiàn)程序主邏輯和錯誤處理邏輯分離,使程序可讀性和健壯性得到進一步提高分類預(yù)定義異常:由Oracle數(shù)據(jù)庫自帶,在使用時不用先聲明自定義異常:由開發(fā)人員自定義,在使用前需要先聲明.第68頁,共162頁。異常處理-預(yù)定義異常清單.第69頁,共162頁。異常處理-自定義異常概述將業(yè)務(wù)邏輯錯誤封裝成異常,這種異常就是自定義異常自定義異常在使用前必須先聲明,可在PL/SQL代碼塊聲明部分和包中聲明自定義異常異常不是變量,聲明不能賦值異常作用域和變量一直,在一個塊和其子塊可見,子塊聲明與父塊同名異常,會覆蓋父塊聲明的異常語法.第70
20、頁,共162頁。異常處理-處理異常示例自定義異常.第71頁,共162頁。異常處理-處理異常示例自定義異常.第72頁,共162頁。異常處理-處理異常異常觸發(fā)異常捕獲與傳播.第73頁,共162頁。異常處理-處理異常異常觸發(fā)對于預(yù)定義異常,一個與異常相關(guān)的錯誤發(fā)生的時候,就會自動觸發(fā)該異常,也可以使用RAISE語句顯式觸發(fā)對于自定義異常,必須在代碼中使用RAISE語句顯式觸發(fā).第74頁,共162頁。異常處理-處理異常示例預(yù)定義異常.第75頁,共162頁。異常處理-處理異常示例自定義異常.第76頁,共162頁。異常處理-處理異常-異常捕獲與傳播處理原則只有PL/SQL代碼塊執(zhí)行部分觸發(fā)的異常才會被相應(yīng)
21、代碼塊合適的異常處理部分捕獲如果觸發(fā)異常的PL/SQL代碼塊沒有合適異常處理部分,則異常會傳播到該代碼塊的父代碼塊的合適的異常處理部分如果在父代碼塊仍未找到合適的異常處理部分,則繼續(xù)往上傳播異常,直至找到合適的異常處理部分找到合適的異常處理部分并執(zhí)行后,同一語句塊的其他異常處理部分不會被執(zhí)行,即使執(zhí)行的合適的異常處理部分再次觸發(fā)異常如果最后仍然沒有照到合適的異常處理部分,則將控制權(quán)交給當(dāng)前調(diào)用環(huán)境示例執(zhí)行部分觸發(fā)的異常聲明部分觸發(fā)的異常異常處理部分觸發(fā)的異常.第77頁,共162頁。異常處理-處理異常-異常捕獲與傳播示例執(zhí)行部分觸發(fā)的異常.第78頁,共162頁。異常處理-處理異常-異常捕獲與傳播
22、示例聲明部分觸發(fā)的異常.第79頁,共162頁。異常處理-處理異常-異常捕獲與傳播示例異常處理部分觸發(fā)的異常.第80頁,共162頁。異常處理-關(guān)鍵字OTHERS用途代表未知異常在無法預(yù)測或不想指明要捕獲的異常類型時使用一個PL/SQL代碼塊如果有多個異常處理語句,帶OTHERS的異常處理語句必須放在最后.第81頁,共162頁。異常處理-處理異常-異常捕獲與傳播示例異常處理部分觸發(fā)的異常.第82頁,共162頁。異常處理-處理異常-異常捕獲與傳播示例異常處理部分觸發(fā)的異常.第83頁,共162頁。異常處理-編譯指令EXCEPTION_INIT用途將ORACLE錯誤代碼與自定義異常關(guān)聯(lián)發(fā)生相應(yīng)錯誤時,轉(zhuǎn)
23、換為異常,使用異常機制處理錯誤語法.第84頁,共162頁。異常處理-處理異常-編譯指令EXCEPTION_INIT示例ORA-1843,月份錯誤.第85頁,共162頁。異常處理-處理異常-編譯指令EXCEPTION_INIT示例ORA-1476,除數(shù)為零.第86頁,共162頁。目錄 課程介紹 基礎(chǔ)知識 循環(huán)執(zhí)行 條件轉(zhuǎn)移 游標(biāo)與數(shù)據(jù) 寄存對象 內(nèi)置函數(shù) 異常處理.第87頁,共162頁。寄存對象過程函數(shù)包觸發(fā)器.第88頁,共162頁。寄存對象-過程什么是過程聲明過程調(diào)用過程刪除過程.第89頁,共162頁。寄存對象-過程-什么是過程概念過程是特殊的PL/SQL代碼塊,在普通代碼塊基礎(chǔ)上加上過程聲明
24、語句Procedure.再加上參數(shù),代碼塊就變?yōu)檫^程過程可以編譯到數(shù)據(jù)庫中,編譯后自動保存在數(shù)據(jù)庫中過程可以通過名稱和包、schema等限定詞被其他代碼調(diào)用過程參數(shù)有IN/OUT/IN OUT三種類型,其中IN類型可以被過程體引用,但不能改寫值;OUT類型不可被過程體引用,但可改寫值;IN OUT 既可以被過程體引用,又可以改寫值.第90頁,共162頁。寄存對象-過程-聲明過程語法是.第91頁,共162頁。寄存對象-過程-聲明過程示例新建一個部門,名稱由參數(shù)指定.第92頁,共162頁。寄存對象-過程-聲明過程示例復(fù)制參數(shù)1指定的部門及其員工,部門名稱和員工姓名在原來名稱前加上”copied b
25、y 參數(shù)2 ”,員工號碼為序列值.第93頁,共162頁。寄存對象-過程-聲明過程示例復(fù)制參數(shù)1指定的部門及其員工,部門名稱和員工姓名在原來名稱前加上”copied by 參數(shù)2 ”,員工號碼為序列值(續(xù)).第94頁,共162頁。寄存對象-過程-聲明過程示例將參數(shù)1指定的部門,工資低于參數(shù)2指定的工資,增加參數(shù)3,并返回是否更新成功,以及相應(yīng)的提示信息.第95頁,共162頁。寄存對象-過程-聲明過程示例將參數(shù)1指定的部門,工資低于參數(shù)2指定的工資,增加參數(shù)3,并返回是否更新成功,以及相應(yīng)的提示信息(續(xù)).第96頁,共162頁。寄存對象-過程-調(diào)用過程方法位置標(biāo)志法帶名標(biāo)志法.第97頁,共162頁
26、。寄存對象-過程-調(diào)用過程示例位置標(biāo)志法.第98頁,共162頁。寄存對象-過程-調(diào)用過程示例帶名標(biāo)志法.第99頁,共162頁。寄存對象-過程-刪除過程語法DROP PROCEDURE procedure_name;示例DROP PROCEDURE p_copy_dept_and_emp;.第100頁,共162頁。寄存對象-函數(shù)什么是函數(shù)聲明函數(shù)調(diào)用函數(shù)刪除函數(shù).第101頁,共162頁。寄存對象-函數(shù)-什么是函數(shù)概念過程是特殊的PL/SQL代碼塊,在普通代碼塊基礎(chǔ)上加上過程聲明語句Function. Return Type再加上參數(shù),代碼塊就變?yōu)楹瘮?shù)函數(shù)可以編譯到數(shù)據(jù)庫中,編譯后自動保存在數(shù)據(jù)庫
27、中函數(shù)可以通過名稱和包、schema等限定詞被其他代碼調(diào)用函數(shù)參數(shù)有IN/OUT/IN OUT三種類型,其中IN類型可以被函數(shù)體引用,但不能改寫值;OUT類型不可被函數(shù)體引用,但可改寫值;IN OUT 既可以被函數(shù)體引用,又可以改寫值函數(shù)有返回值,只能返回一個值.第102頁,共162頁。寄存對象-函數(shù)語法.第103頁,共162頁。寄存對象-函數(shù)示例將參數(shù)1指定的部門的所有員工姓名連接起來,中間用逗號隔開.第104頁,共162頁。寄存對象-函數(shù)-調(diào)用函數(shù)方法位置標(biāo)志法帶名標(biāo)志法.第105頁,共162頁。寄存對象-函數(shù)-調(diào)用函數(shù)示例位置標(biāo)志法.第106頁,共162頁。寄存對象-函數(shù)-調(diào)用函數(shù)示例帶
28、名標(biāo)志法.第107頁,共162頁。寄存對象-函數(shù)-刪除函數(shù)語法DROP FUNCTION procedure_name;示例DROP FUNCTION fn_get_emp_name;.第108頁,共162頁。寄存對象-包什么是包聲明包調(diào)用包刪除包.第109頁,共162頁。寄存對象-包-什么是包概念包是是特殊的PL/SQL代碼塊,是過程、函數(shù)、變量的容器包可以編譯到數(shù)據(jù)庫中,編譯后自動保存在數(shù)據(jù)庫中可以通過包名、schema等限定詞調(diào)用包中的其他數(shù)據(jù)庫對象包分包頭和包體,通過PACKAGE和PACKAGE BODY關(guān)鍵詞分別聲明包頭和包體.第110頁,共162頁。寄存對象-包頭語法.第111頁
29、,共162頁。寄存對象-包體示例.第112頁,共162頁。寄存對象-包-聲明包示例包頭.第113頁,共162頁。寄存對象-包-聲明包示例包體.第114頁,共162頁。寄存對象-包-調(diào)用包對象方法位置標(biāo)志法帶名標(biāo)志法.第115頁,共162頁。寄存對象-包-調(diào)用函數(shù)示例位置標(biāo)志法.第116頁,共162頁。寄存對象-包-調(diào)用函數(shù)示例帶名標(biāo)志法.第117頁,共162頁。寄存對象-包-刪除包語法DROP PACKAGE package_name;示例DROP PACKAGE PKG_SQL_APP;.第118頁,共162頁。寄存對象-觸發(fā)器什么是觸發(fā)器聲明觸發(fā)器調(diào)用觸發(fā)器刪除觸發(fā)器.第119頁,共162
30、頁。寄存對象-觸發(fā)器-什么是觸發(fā)器概念過程是特殊的PL/SQL代碼塊,在普通代碼塊基礎(chǔ)上加上聲明語句Trigger. Before/After On等關(guān)鍵字后,代碼塊就變?yōu)橛|發(fā)器觸發(fā)器可以編譯到數(shù)據(jù)庫中,編譯后自動保存在數(shù)據(jù)庫中觸發(fā)器在按定義時指定表數(shù)據(jù)變化的事件中自動被調(diào)用表數(shù)據(jù)變化事件包括新增、更新、刪除.第120頁,共162頁。寄存對象-觸發(fā)器-聲明觸發(fā)器語法.第121頁,共162頁。寄存對象-觸發(fā)器-聲明觸發(fā)器示例.第122頁,共162頁。寄存對象-觸發(fā)器-聲明觸發(fā)器示例.第123頁,共162頁。寄存對象-觸發(fā)器-聲明觸發(fā)器示例.第124頁,共162頁。寄存對象-觸發(fā)器-調(diào)用觸發(fā)器方法
31、:系統(tǒng)自動調(diào)用表數(shù)據(jù)新增表數(shù)據(jù)更新表數(shù)據(jù)刪除.第125頁,共162頁。寄存對象-觸發(fā)器-刪除觸發(fā)器語法DROP TRIGGER trigger_name;示例DROP TRIGGER trg_insert_emp_his;.第126頁,共162頁。目錄 課程介紹 基礎(chǔ)知識 循環(huán)執(zhí)行 條件轉(zhuǎn)移 游標(biāo)與數(shù)據(jù) 寄存對象 內(nèi)置函數(shù) 異常處理.第127頁,共162頁。內(nèi)置函數(shù)概念內(nèi)置函數(shù)是Oracle提供的、預(yù)定義好的函數(shù)內(nèi)置函數(shù)不用聲明或引用包就可以使用分類多行函數(shù),對查詢返回的數(shù)據(jù)的多行起作用,多行函數(shù)在SELECT語句中,配合GROUP BY一起使用單行函數(shù),對查詢返回的數(shù)據(jù)的每一行起作用,單行函
32、數(shù)也可以在PL/SQL中直接使用,將函數(shù)返回值賦值給變量.第128頁,共162頁。內(nèi)置函數(shù)多行函數(shù)COUNTAVGSUMMINMAX.第129頁,共162頁。內(nèi)置函數(shù)單行函數(shù)數(shù)值函數(shù)字符函數(shù)轉(zhuǎn)換函數(shù)日期函數(shù)雜項函數(shù).第130頁,共162頁。內(nèi)置函數(shù)-單行函數(shù)數(shù)值函數(shù)ABSSIGINCEILFLOORROUNDTRUNCMOD.第131頁,共162頁。內(nèi)置函數(shù)-單行函數(shù)-數(shù)值函數(shù)-ABS用途返回絕對值語法ABS(number_param).第132頁,共162頁。內(nèi)置函數(shù)-單行函數(shù)-數(shù)值函數(shù)-TO_NUMBER示例.第133頁,共162頁。內(nèi)置函數(shù)-單行函數(shù)字符函數(shù)LENGTHLENGTHBLO
33、WERUPPERINSTRSUBSTRREPLACELPADRPADLTRIMRTRIM.第134頁,共162頁。內(nèi)置函數(shù)-單行函數(shù)-字符函數(shù)-LENGTH用途返回字符長度語法LENGTH(string_param).第135頁,共162頁。內(nèi)置函數(shù)-單行函數(shù)-字符函數(shù)-LENGTH示例.第136頁,共162頁。內(nèi)置函數(shù)-單行函數(shù)-字符函數(shù)-LENGTHB用途返回字符按字節(jié)計算長度語法LENGTHB(string_param).第137頁,共162頁。內(nèi)置函數(shù)-單行函數(shù)-字符函數(shù)-LENGTHB示例.第138頁,共162頁。內(nèi)置函數(shù)-單行函數(shù)-字符函數(shù)-LOWER用途將字符轉(zhuǎn)為小寫,參數(shù)字符串
34、中可包含非字符,如數(shù)字,特殊符號等語法LOWER(string_param).第139頁,共162頁。內(nèi)置函數(shù)-單行函數(shù)-字符函數(shù)-LOWER示例.第140頁,共162頁。內(nèi)置函數(shù)-單行函數(shù)-字符函數(shù)-UPPER用途將字符轉(zhuǎn)為大寫語法LOWER(string_param).第141頁,共162頁。內(nèi)置函數(shù)-單行函數(shù)-字符函數(shù)-UPPER示例.第142頁,共162頁。內(nèi)置函數(shù)-單行函數(shù)轉(zhuǎn)換函數(shù)TO_NUMBERTO_CHARTO_DATE.第143頁,共162頁。內(nèi)置函數(shù)-單行函數(shù)-數(shù)值函數(shù)-TO_NUMBER用途將字符轉(zhuǎn)為數(shù)字型語法TO_NUMBER(param).第144頁,共162頁。內(nèi)置函數(shù)-單行函數(shù)-數(shù)值函數(shù)-TO_NUMB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑工地勞務(wù)人員職業(yè)技能鑒定與認(rèn)證合同
- 2025年度插畫師藝術(shù)衍生品開發(fā)合同
- 貴州2025年貴州遵義師范學(xué)院招聘34人筆試歷年參考題庫附帶答案詳解
- 荊州2024年湖北洪湖市大學(xué)生鄉(xiāng)村醫(yī)生專項招聘33人筆試歷年參考題庫附帶答案詳解
- 白銀2025年甘肅白銀礦冶職業(yè)技術(shù)學(xué)院春季引進博士研究生13人筆試歷年參考題庫附帶答案詳解
- 玉溪2025年云南玉溪市江川區(qū)審計局招聘公益性崗位工作人員筆試歷年參考題庫附帶答案詳解
- 杭州浙江杭州電子科技大學(xué)信息技術(shù)中心招聘工作人員(勞務(wù)派遣)筆試歷年參考題庫附帶答案詳解
- 2025年中國塑底布鞋市場調(diào)查研究報告
- 廊坊2025年河北廊坊臨空經(jīng)濟區(qū)選調(diào)22人筆試歷年參考題庫附帶答案詳解
- 2025至2031年中國靜電粉末涂料行業(yè)投資前景及策略咨詢研究報告
- GB/T 4365-2024電工術(shù)語電磁兼容
- 高校體育課程中水上運動的安全保障措施研究
- 油氣勘探風(fēng)險控制-洞察分析
- GB 12710-2024焦化安全規(guī)范
- 2022年中考化學(xué)模擬卷1(南京專用)
- 雙減政策與五項管理解讀
- 過橋資金操作流程
- 醫(yī)療機構(gòu)質(zhì)量管理指南
- 新時代中國特色社會主義理論與實踐2024版研究生教材課件全集2章
- 新《安全生產(chǎn)法》安全培訓(xùn)
- 2024年浙江省電力交易員競賽選拔考試參考題庫(含答案)
評論
0/150
提交評論