(一)PL/SQL塊
PL/SQL程序由三個塊組成,即聲明部分、執行部分、異常處理部分,其中執行部分是必須的。
PL/SQL塊的結構如下:
PL/SQL塊可以分成三類:
1、無名快:動態構造,只能執行一次。
2、子程序:存儲在數據庫中的存儲過程、函數及包等。當在數據庫建立好后可以在其他程序中調用它們。
3、觸發器:當數據庫發生操作時,會觸發一些時間按,從而自動執行相應的程序。
(二)PL/SQL結構
-
PL/SQL塊中可以包含子塊
-
子塊可以位於PL/SQL中的任何部分
-
子塊也即PL/SQL中的一條命令
(三)標識符
PL/SQL程序設計中的標識符定義與SQL的標識符定義要求相同,要求和限制如下:
-
標識符名不能超過30字符
-
第一個字符必須為字母
-
不分大小寫
-
不能用‘-’(減號)
-
不能是SQL保留字
提示:一般不要把變量名聲明與字段名完全一樣,如果這樣可能得到不正確的結果
變量命名在PL/SQL中有特別的講究,建議在系統的設計階段就要求所有編程人員共同遵守一定的要求,使得整個系統的文檔在規范上達到要求。下面是建議的命名方法:
(四)PL/SQL變量類型
1、變量類型
2、復合類型
ORACLE在PL/SQL中除了提供像前面介紹的各種類型外,還提供了一種成為復合類型 —— 記錄和表
(1)記錄類型
記錄類型是把邏輯相關的數據作為一個單元存儲起來,稱作PL/SQL RECORD的域,其作用是存放互不相同但邏輯相關的信息
語法:
DBMS_OUTPUT.PUT_LINE過程的功能類似與JAVA中的System.out.println();直接將結果輸出到標准輸出中
在使用上述過程之前必須將SQL*PLUS的環境參數SERVEROUTPUT設置為ON,否則將看不到輸出結果:set serveroutput on
(2)使用%TYPE
定義一個變量,其數據類型與意境定義的某個數據變量的數據類型相同,或者與數據庫表的某個列的數據類型相同,這是就可以使用%TYPE。
優點:
-
所使用的數據庫列的數據類型可以不必知道
-
所引用的數據庫列的數據類型可以實時改變
(3)使用%ROWTYPE
PL/SQL提供的%ROWTYPE操作符,返回一個記錄類型,其數據類型和數據庫表的數據結構相一致。
優點:
-
所引用的數據庫中列的個數和數據類型可以不必知道
-
所引用的數據庫中列的個數和數據類型可以實時改變
(4)PL/SQL表(嵌套表)
PL/SQL程序可使用嵌套表類型創建具有一個或多個列和無限行的變量,這很像數據庫中的表,聲明嵌套表類型的一般語法如下:
在使用嵌套表之前必須先使用該集合的構造器初始化它,PL/SQL自動提供一個帶有相同名字的構造器作為集合類型
嵌套表可以有任意數量的行,表的大小在必要時課動態地增加或減少:extend(x)方法添加x個空元素到集合末尾;trim(x)方法去掉集合末尾的x個元素
(五)運算符和表達式(數據定義)
1、關系運算符
2、一般運算符
3、邏輯運算符
(六)變量賦值
在PL/SQL編程中,變量賦值只一個值得注意的地方,語法如下:
1、字符與數字運算特點
2、BOOLEAN復制
布爾值只有TURE,FALSE及NULL三個值
3、數據庫賦值
數據庫賦值是通過select語句來完成的,每次執行SELECT語句就賦值一次,一般要求被賦值的變量與SELECT找那個的列名要一一對應