資源描述:
《調(diào)用oracle存儲(chǔ)過(guò)程(詳解)》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第7講PL/SQL塊的結(jié)構(gòu)和實(shí)例PL/SQL塊的結(jié)構(gòu)和實(shí)例介紹學(xué)習(xí)目標(biāo)理解oracle的pl/sql概念掌握pl/sql編程技術(shù)(包括編寫(xiě)過(guò)程、函數(shù)、觸發(fā)器...)pl/sql的介紹pl/sql是什么pl/sql(procedurallanguage/sql)是oracle在標(biāo)準(zhǔn)的sql語(yǔ)言上的擴(kuò)展。pl/sql不僅允許嵌入sql語(yǔ)言,還可以定義變量和常量,允許使用條件語(yǔ)句和循環(huán)語(yǔ)句,允許使用例外處理各種錯(cuò)誤,這樣使得它的功能變得更加強(qiáng)大。PL/SQL塊的結(jié)構(gòu)和實(shí)例學(xué)習(xí)必要性1.提高應(yīng)用程序的運(yùn)行性能2.模塊化的設(shè)計(jì)思想【分頁(yè)的過(guò)程,訂單的過(guò)程,轉(zhuǎn)賬的過(guò)
2、程。。】3.減少網(wǎng)絡(luò)傳輸量4.提高安全性(sql會(huì)包括表名,有時(shí)還可能有密碼,傳輸?shù)臅r(shí)候會(huì)泄露。PL/SQL就不會(huì))為什么PL/SQL會(huì)快呢?不好的地方:移植性不好(換數(shù)據(jù)庫(kù)就用不了)PL/SQL塊的結(jié)構(gòu)和實(shí)例sqlplus開(kāi)發(fā)工具sqlplus是oracle公司提供的一個(gè)工具,這個(gè)因?yàn)槲覀冊(cè)谝郧敖榻B過(guò)的:舉一個(gè)簡(jiǎn)單的案例:編寫(xiě)一個(gè)存儲(chǔ)過(guò)程,該過(guò)程可以向某表中添加記錄。一個(gè)簡(jiǎn)單的存儲(chǔ)過(guò)程CREATEORREPLACEPROCEDUREproc_helloworldISBEGINDBMS_OUTPUT.put_line('HelloWorld!');
3、END;/PL/SQL塊的結(jié)構(gòu)和實(shí)例需要在屏幕上顯示出"DBMS_OUTPUT.put_line"的輸出字符串,需要做一個(gè)小小的設(shè)置SQL>showserveroutputserveroutputOFFSQL>setserveroutputonSQL>showserveroutputONSIZE10000FORMATWORD_WRAPPED1.創(chuàng)建一個(gè)簡(jiǎn)單的表Sql代碼1.createtablemytest(namevarchar2(30),passwdvarchar2(30));PL/SQL塊的結(jié)構(gòu)和實(shí)例2.創(chuàng)建過(guò)程Sql代碼1.createo
4、rreplaceproceduresp_pro1is2.begin--執(zhí)行部分3.insertintomytestvalues(‘楊世順','m1234');4.end;5./replace:表示如果有sp_pro1,就替換如何查看錯(cuò)誤信息:showerror;如何調(diào)用該過(guò)程:1)exec過(guò)程名(參數(shù)值1,參數(shù)值2...);SQL執(zhí)行2)call過(guò)程名(參數(shù)值1,參數(shù)值2...);程序調(diào)用PL/SQL塊的結(jié)構(gòu)和實(shí)例pl/sqlndeveloper開(kāi)發(fā)工具pl/sqldeveloper是用于開(kāi)發(fā)pl/sql塊的集成開(kāi)發(fā)環(huán)境(ide),它是一個(gè)獨(dú)立的產(chǎn)品,而
5、不是oracle的一個(gè)附帶品。舉一個(gè)簡(jiǎn)單案例:編寫(xiě)一個(gè)存儲(chǔ)過(guò)程,該過(guò)程可以刪除某表記錄。Sql代碼1.createorreplaceproceduresp_pro2is2.begin--執(zhí)行部分3.deletefrommytestwherename='楊世順';4.end;PL/SQL塊的結(jié)構(gòu)和實(shí)例pl/sql基礎(chǔ)pl/sql介紹開(kāi)發(fā)人員使用pl/sql編寫(xiě)應(yīng)用模塊時(shí),不僅需要掌握sql語(yǔ)句的編寫(xiě)方法,還要掌握pl/sql語(yǔ)句及語(yǔ)法規(guī)則。pl/sql編程可以使用變量和邏輯控制語(yǔ)句,從而可以編寫(xiě)非常有用的功能模塊。比如:分頁(yè)存儲(chǔ)過(guò)程模塊、訂單處理存儲(chǔ)過(guò)程模
6、塊、轉(zhuǎn)賬存儲(chǔ)過(guò)程模塊。而且如果使用pl/sql編程,我們可以輕松地完成非常復(fù)雜的查詢(xún)要求。pl/sql可以做什么簡(jiǎn)單分類(lèi)過(guò)程(存儲(chǔ)過(guò)程)函數(shù)塊(編程)觸發(fā)器包PL/SQL塊的結(jié)構(gòu)和實(shí)例編寫(xiě)規(guī)范編寫(xiě)規(guī)范n1.注釋單行注釋--Sql代碼1.select*fromempwhereempno=7788;--取得員工信息多行注釋/*...*/來(lái)劃分2.標(biāo)志符號(hào)的命名規(guī)范1).當(dāng)定義變量時(shí),建議用v_作為前綴v_sal2).當(dāng)定義常量時(shí),建議用c_作為前綴c_rate3).當(dāng)定義游標(biāo)時(shí),建議用_cursor作為后綴emp_cursor4).當(dāng)定義例外時(shí),建議用e_作
7、為前綴e_errorPL/SQL塊的結(jié)構(gòu)和實(shí)例pl/sql塊介紹介紹n塊(block)是pl/sql的基本程序單元,編寫(xiě)pl/sql程序?qū)嶋H上就是編寫(xiě)pl/sql塊,要完成相對(duì)簡(jiǎn)單的應(yīng)用功能,可能只需要編寫(xiě)一個(gè)pl/sql塊,但是如果想要實(shí)現(xiàn)復(fù)雜的功能,可能需要在一個(gè)pl/sql塊中嵌套其它的pl/sql塊。塊n結(jié)構(gòu)示意圖pl/sql塊由三個(gè)部分構(gòu)成:定義部分,執(zhí)行部分,例外處理部分。如下所示:declare/*定義部分定義常量、變量、游標(biāo)、例外、復(fù)雜數(shù)據(jù)類(lèi)型*/begin/*執(zhí)行部分要執(zhí)行的pl/sql語(yǔ)句和sql語(yǔ)句*/exception/*例外處理
8、部分處理運(yùn)行的各種錯(cuò)誤*/end;定義部分是從declare開(kāi)始的,該部分是可選