基本的SQL語句時極其常用的,但相對于SQL而言Oracle公司在SQL基礎上引入一種過程化程式設計語言.PL/SQL(Producedural Language/SQL).PL/SQL建構于SQL自上.可以用來編寫SQL語句的程式.PL/SQL是第三代語言.Oracle在此內建之上做的擴充.
(A)PL/SQL基本概念:
PL/SQL也是一種程式語言,叫做過程化SQL語言(Procedural Language/SQL. PL/SQL是Oracle資料庫對SQL語句的擴充。在普通SQL語句的使用上增加了程式設計語言的特點,是以PL/SQL就是把資料操作和查詢語句組織在PL/SQL代碼的過程性單元中,通過邏輯判斷、循環等操作實作複雜的功能或者計算的程式語言.
(B)PL/SQL的作用:
使用PL/SQL可以編寫具有很多進階功能的程式,雖然通過多個SQL語句可能也能實作同樣的功能,但是相比而言,PL/SQL具有更為明顯的一些優點:
(1).能夠使一組SQL語句的功能更具子產品化程式特點;
(2).采用了過程性語言控制程式的結構;
(3).可以對程式中的錯誤進行自動處理,使程式能夠在遇到錯誤的時候不會被中斷;
(4).具有較好的可移植性,可以移植到另一個Oracle資料庫中。
(5).內建在資料庫中,調用更快.
(6).減少了網絡的互動,有助于提高程式性能.
通過多條SQL語句實作功能時,每條語句都需要在用戶端和服務端傳遞,而且每條語句的執行結果也需要在網絡中進行互動,占用了大量的網絡帶寬,消耗了大量網絡傳遞的時間,而在網絡中傳輸的那些結果,往往都是中間結果,而不是我們所關心的。
而使用PL/SQL程式是,因為程式代碼存儲在資料庫中,程式的分析和執行完全在資料庫内部進行,使用者所需要做的就是在用戶端發出調用PL/SQL的執行指令,資料庫接收到執行指令後,在資料庫内部完成整個PL/SQL程式的執行,并将最終的執行結果傳回給使用者。在整個過程中網絡裡隻傳輸了很少的資料,減少了網絡傳輸占用的時間,是以整體程式的執行性能會有明顯的提高.
(C)PL/SQL程式的基本結構:
PL/SQL塊由四個基本部分組成:聲明、執行體開始、異常處理、執行體結束.下面是四個部分的基本結構:
DECLARE—可選部分:變量、常量、遊标、使用者定義異常的聲明
……
BEGIN—必要部分:SQL語句和PL/SQL語句構成的執行程式
EXCEPTION—可選部分:程式出現異常時,捕捉異常并處理異常
……
END;—必須部分
在資料庫執行PL/SQL程式時,PL/SQL語句和SQL語句是分别進行解析和執行的。 PL/SQL塊被資料庫内部的PL/SQL引擎提取,将SQL語句取出送給Oracle的SQL引擎處理,兩種語句分别在兩種引擎中分析處理,在資料庫内部完成資料互動、處理過程.
(D)PL/SQL程式在Oracle 10G中的包含内容:
本機上裝的的Oracle 10G版本. 在Oracle 10G中包含這類語言的标準程式設計結構. 例如:
(1)塊結構:
(2)變量和類型
(3)條件邏輯
(4)循環處理
(5)遊标: Oracle中儲存着查詢傳回的結果.
(6)過程
(7)函數
(8)包: Oralce中主要用來将過程和函數封裝組合到一個單元中去.
通常PL/SQL用于向資料庫中加入業務邏輯.這種集中化的代碼可以由任何能夠通路資料庫的程式調用. 因為PL/SQL是基于SQL标準自上的. 其中包括SQL*PLus。C程式/Java程式等.
最後推薦各位一本關于Oracle中PL/SQL程式設計經典書籍;Oracle Database 10G PL/SQL Programming. 中文版已經出版. Orcale 11G 隻有英文版本.
<a href="http://blog.51cto.com/attachment/201201/110321592.jpg" target="_blank"></a>
本文轉自chenkaiunion 51CTO部落格,原文連結:http://blog.51cto.com/chenkai/765103