隨筆-12  評論-0  文章-3  trackbacks-0

          PL/SQL塊結構

          PL/SQL是一種塊結構的語言,組成PL/SQL程序的單元是邏輯塊,一個PL/SQL 程序包含了一個或多個邏輯塊,每個塊都可以劃分為三個部分。與其他語言相同,變量在使用之前必須聲明,PL/SQL提供了獨立的專門用于處理異常的部分,下面描述了PL/SQL塊的三個不同部分:

          1.         聲明部分(Declaration section)

          聲明部分包含了變量和常量的數據類型和初始值。這個部分是由關鍵字DECLARE開始,如果不需要聲明變量或常量,那么可以忽略這一部分;需要說明的是游標的聲明也在這一部分。

          2.         執行部分(Executable section)

          執行部分是PL/SQL塊中的指令部分,由關鍵字BEGIN開始,所有的可執行語句都放在這一部分,其他的PL/SQL塊也可以放在這一部分。

          3.         異常處理部分(Exception section)

          這一部分是可選的,在這一部分中處理異常或錯誤。

           

          PL/SQL塊語法

          [DECLARE] 
          ---declaration statements 
          BEGIN 
          ---executable statements 
          [EXCEPTION] 
          ---exception statements 
          END

                PL/SQL塊中的每一條語句都必須以分號結束,SQL語句可以是多行的,但分號表示該語句的結束。一行中可以有多條SQL語句,他們之間以分號分隔。每一個PL/SQL塊由BEGINDECLARE開始,以END結束。注釋由--標示。

           

          PL/SQL塊的命名和匿名

          PL/SQL程序塊可以是一個命名的程序塊也可以是一個匿名程序塊。匿名程序塊可以用在服務器端也可以用在客戶端。

          命名程序塊可以出現在其他PL/SQL程序塊的聲明部分,這方面比較明顯的是子程序,子程序可以在執行部分引用,也可以在異常處理部分引用。 
                 PL/SQL
          程序塊可被獨立編譯并存儲在數據庫中,任何與數據庫相連接的應用程序都可以訪問這些存儲的PL/SQL程序塊。ORACLE提供了四種類型的可存儲的程序:函數;過程;包和觸發器

           

          1.函數

          函數是命名了的、存儲在數據庫中的PL/SQL程序塊。函數接受零個或多個輸入參數,有一個返回值,返回值的數據類型在創建函數時定義。定義函數的語法如下:

          FUNCTION name [{parameter[,parameter,])] RETURN datatypes IS 
          [local declarations] 
          BEGIN 
          execute statements 
          [EXCEPTION 
          exception handlers
          ] 
          END [name]


              2.過程

          存儲過程是一個PL/SQL程序塊,接受零個或多個參數作為輸入(INPUT)或輸出(OUTPUT)、或既作輸入又作輸出(INOUT),與函數不同,存儲過程沒有返回值,存儲過程不能由SQL語句直接使用,只能通過EXECUT命令或PL/SQL程序塊內部調用,定義存儲過程的語法如下:

          PROCEDURE name [(parameter[,parameter,])] IS 
          [local declarations] 
          BEGIN 
          execute statements
          [EXCEPTION 
          exception handlers 
          ]
          END [name]

           

          3.包(package)

          包其實就是被組合在一起的相關對象的集合,當包中任何函數或存儲過程被調用,包就被加載入內存中,包中的任何函數或存儲過程的子程序訪問速度將大大加快。

          包由兩個部分組成:規范和包主體(body),規范描述變量、常量、游標、和子程序,包體完全定義子程序和游標。


              4.觸發器
          (trigger)

          觸發器與一個表或數據庫事件聯系在一起的,當一個觸發器事件發生時,定義在表上的觸發器被觸發。

          posted on 2005-12-26 17:22 簡單愛 閱讀(295) 評論(0)  編輯  收藏 所屬分類: Oracle

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 穆棱市| 财经| 清水河县| 大同县| 湖州市| 广平县| 文山县| 贵州省| 丰镇市| 信丰县| 中山市| 澄城县| 东辽县| 乌鲁木齐县| 东海县| 郯城县| 大足县| 资阳市| 洛隆县| 靖边县| 象州县| 漳平市| 新民市| 尼勒克县| 大姚县| 黑水县| 建湖县| 商南县| 逊克县| 碌曲县| 文昌市| 达尔| 鹤山市| 霍林郭勒市| 孟州市| 班玛县| 镇宁| 射阳县| 洛阳市| 营山县| 阿尔山市|