官术网_书友最值得收藏!

實例007 創建PL/SQL塊

【實例描述】

Oracle PL/SQL語言(Procedural Language/SQL)是結合了結構化查詢語言SQL與Oracle自身過程控制為一體的強大語言,PL/SQL不但支持更多的數據類型,擁有自身的變量聲明、賦值語句,而且還有條件、循環等流程控制語句。過程控制結構與SQL數據處理能力無縫地結合形成了強大的編程語言,可以創建過程和函數及程序包。

本實例創建一個簡單的PL/SQL塊,計算一個長為5,寬為4的矩形面積。創建完成后將該塊在SQL*Plus中運行,其運行結果如圖1-25所示。

圖1-25 創建PL/SQL塊計算矩形面積

【實現過程】

(1)打開SQL*Plus工具。執行【開始】|【運行】命令,在【運行】對話框中輸入“sqlplusw”命令,打開SQL*Plus,在登錄框中輸入“system/oracle”(用戶名/口令),如圖1-26所示。此處口令“oracle”為安裝Oracle時設置的,讀者需將其改為自身為其設置的口令。

圖1-26 登錄SQL*Plus

(2)編寫PL/SQL代碼。連接到Oracle SQL*Plus后,在“SQL>”字符串后輸入PL/SQL代碼,如下所示:

    SQL>  DECLARE
      2  LEN NUMBER:=5;
      3  WIDTH NUMBER:=4;
      4  AREA NUMBER;
      5  BEGIN                         ------執行部分開始
      6  AREA:=LEN*WIDTH;
      7  DBMS_OUTPUT.PUT_LINE(AREA);   ------輸出AREA的值到SQL*Plus
      8  END;
      9  /

【范例解析】

簡單地說,PL/SQL是一種塊結構的語言,它將一組語句放在一個塊中,一次性發送給服務器,PL/SQL引擎分析收到PL/SQL語句塊中的內容,把其中的過程控制語句由PL/SQL引擎自身去執行,把PL/SQL塊中的SQL語句交給服務器的SQL語句執行器執行。一個PL/SQL程序包含了一個或者多個邏輯塊,邏輯塊中可以聲明變量,變量在使用之前必須先聲明。除了正常的執行程序外,PL/SQL還提供了專門的異常處理部分進行異常處理。每個邏輯塊分為三個部分,語法是:

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

其中,DECLARE部分為聲明部分,它包含了變量和常量的定義,該部分由關鍵字DECLARE開始,如果不聲明變量或者常量,可以省略這部分;由關鍵字BEGIN開始,關鍵字END結尾的部分為執行部分,所有的可執行PL/SQL語句都放在這一部分,該部分執行命令并操作變量;由EXCEPTION關鍵字開始的部分為異常處理部分,它也是可選的。

讀者可以看出,PL/SQL事實上是一種編程語言,與Java和C#一樣。除了有自身獨有的數據類型、變量聲明和賦值及流程控制語句外,PL/SQL還有自身的語言特性。

● PL/SQL對大小寫不敏感,本書中約定關鍵字全部大些,其余的部分小寫。

● PL/SQL塊中的每一條語句都必須以分號結束,SQL語句可以是多行的,但分號表示該語句結束。一行中可以有多條SQL語句,他們之間以分號分隔,但是不推薦一行中寫多條語句。

● PL/SQL塊中的END關鍵字后面用分號結尾。

● PL/SQL塊和PL/SQL語句在SQL*Plus中以符號“/”執行。

注意:在SQL*Plus中運行PL/SQL塊前,如果需要將執行結果直接輸出,首先需要執行“set serveroutput on”命令,再用dbms_output.put_line()語句輸出變量值。

主站蜘蛛池模板: 吉林省| 河源市| 海原县| 探索| 陆川县| 塔河县| 沙河市| 平江县| 兴安盟| 闽侯县| 类乌齐县| 安阳市| 江口县| 观塘区| 定远县| 德保县| 岳阳县| 凤凰县| 剑川县| 新源县| 临漳县| 贵南县| 钟山县| 新昌县| 海丰县| 罗山县| 南开区| 泰来县| 固阳县| 庄河市| 辛集市| 水城县| 定南县| 任丘市| 于田县| 灵川县| 荆州市| 宁晋县| 泉州市| 延长县| 揭东县|