如何使用 PL/SQL 塊 ?

2.PL/SQL 塊

PL/SQL是一種塊結構的諾言,一個PL/SQL程序包含了一個或者多個邏輯塊,邏輯塊中可以聲明變數,變數在使用之前必須先聲明。除了正常的執行程序外,PL/SQL 還提供了專門的異常處理部分進行異常處理。每個邏輯塊分為三個部分,語法是:

PL/SQL 塊的語法

[DECLARE

--declaration statements] ①

BEGIN

--executable statements ②

[EXCEPTION

--exception Statements] ③

END;

解析:

① 聲明部分:聲明部分包含了變數和常量的定義。這個部分由關鍵字DECLARE 開始,如果不聲明變數或者常量,可以省略這部分。

Advertisements

② 執行部分;執行部分是叫PL/SQL塊的指令部分,由關鍵字BEGIN 開始,關鍵字END 結尾。所有的可執行PL/SQL語句都放在這一部分,該部分執行命令並操作變數。其他的叫PL/SQL塊可以作為子塊嵌套在該部分。PL/SQL 塊的執行部分是必選的。注意END 關鍵字後面用分號結尾。

③ 異常處理部分:該部分是可選的,該部分用 EXCEPTION 關鍵字把可執行部分分成兩個小部分,之前的程序是正常運行的程序,一旦出現異常就跳轉到異常部分執行。

PL/SQL 是一種編程語言,與Java 和C#一樣,除了有自身獨有的數據類型、變數聲明和賦值以及流程式控制制語句外,PL/SQL 還有自身的語言特性:

PL/SQL對大小寫不敏感,為了良好的程序風格。開發團隊都會選擇一個合適的編碼標準。比如有的團隊規定: 關鍵字全部大寫,其餘的部分小寫。

Advertisements

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


零元入學,上門招聘,真實案例,拼技術,比實力,就業全靠真本領!兆隆IT雲學院等你來!

> 變數聲明

PL/SQL支持SQL 中的數據類型,PL/SQL 中正常支持NUMBER,VARCHAR2,DATE 等Oracle SQL 數據類型。聲明變數必須指明變數的數據類型,也可以聲明變數時對變數初始化,變數聲明必須在聲明部分。聲明變數的語法是:

變數名 數據類型[ :=初始值]

說明:數據類型如果需要長度,可以用括弧指明長度,比如:varchar2(20)。

代碼演示:聲明變數

SQL> DECLARE

2 sname VARCHAR2(20) :='jerry'; ①

3 BEGIN

4 sname:= sname 丨丨' and tom'; ②

5 dbms_output.Put_line(sname); ③

6 END:

7 /Jerry

PL/SQL procedure successfully completed

代碼解析:

① 聲明一個變數sname,初始化值是『』Jerry」。宇符串用單引號,如果字元串中出現單引號可以使用兩個單引號(」) 代替。

② 對變數 sname 重新賦值,賦值運算符是「:=」 。

③ dbms_output.put_line 是輸出語句。可以把一個變數的值輸出,在SQL*Plus 中輸出數據時,可能沒有結果顯示,可以使用命令:set serveroutput on 設置輸出到SQL*Plus 控台上。

對變數賦值還可以使用SELECT…INTO 語句從資料庫中查詢數據對變數進行賦位。但是查詢的結果只能是一行記錄,不能是零行或者多行記錄。

代碼演示:變數賦值

SQL> DECLREE

2 sname VARCHAR2(20) DEFAULT'jerry'; ①

3 BEGIN

4 SELECT ename INTO sname FROM emp WHERE empno=7934; ②

5 dbms_output.put_line(sname);

6 END:

7 /

MILLER

PL/SQL procedure successfully completed

代碼解析:

① 變數初始化時,可以使用DEFAULT關鍵字對變數進行初始化。

② 使用select…into 語句對變數sname 賦值,要求查詢的結果必須是一行,不能是多行或者沒有記錄。

> 聲明常量

常重在聲明時賦予初值,並且在運行時不允許重新賦值。使用CONSTANT 關鍵字聲明常量。

代碼演示:聲明常量

SQL> DECLARE

2 pi coNSTANT number :=3.14;--圓周串長值 ①

3 r number DEFAULT 3;--圓的半徑默認值3

4 area number:--面積。

5 BEGIN6

6 area =pi*r*r;--計算面積

7 dbms_output put_line(area) ;--輸出圓的面積

8 END ;

9 /

28.26

PL/SQL procedure successfully completed

代碼解析:

① 聲明常量時使用關鍵字CONSTANT,常量初值可以使用賦值運算符(:=) 賦值 也可以使用DEFAULT 關鍵字賦值。

在 SQL* PIUS中還可以聲明session (會話,也就是一個客戶端從連接到退出的過程稱為當前用戶的會話。)全局級變數. 該變重在整個會話過程中均起作用,類似的這種變數稱為宿主變數。宿主變數在PL/SQL 引用時要用 「:變數名」 引用。

代碼演示:宿主變數

SQL> var emp_name varchar2(30)′ ①

SQL> BEGIN

2 SELECT ename INTO :emp_name FROM emp WHERE empno=7499;②

3 END;

4 /

PL/SQL procedure successfully completed

emp_name

ALLEN

SQL> print emp_name, ③

emp_name

ALLEN

代碼解析:

① 可以使用var 聲明宿主變數。

② PL/SQL中訪問宿主變數時要在變重前加「:」。

③ 在SQL*Plus 中,使用print可以輸出變數中的結果。

釋放能量與活力,迎接挑戰與機遇!分享來自兆隆IT雲學院,QQ:598756835

Advertisements

你可能會喜歡