1. pl/sql 塊結構
整個pl/sql塊分3部分:
[declare]
--宣告部分,可選
[begin]
--執行部分,必須
[exception]
--異常處理部分,可選
end
2. 資料型別與定義變數和常量
2.1 基本資料型別
(1)數值型別
數值型別主要包括number、pls_integer 和 binary_integer 3種基本型別。number型別的變數可以儲存整數和浮點數;而pls_integer 和 binary_integer型別的變數只儲存整數。
(2)字元型別
字元型別主要包括varchar2、char、long、nchar 和 nvarchar2等,用來儲存字串或字元資料。
【資料庫型別的varchar2的最大長度是4000位元組,所以乙個長度大於4000位元組的pl/sql型別varchar2變數不可以賦值給資料庫中的乙個varchar2變數,只能賦值給long型別的資料庫變數】
【資料庫型別的char的最大長度是2000位元組,所以乙個長度大於2000位元組的pl/sql型別char變數不可以賦值給資料庫中的乙個char變數】
(3)日期型別
date型別:儲存空間為7個位元組,分別使用乙個位元組儲存世紀、年、月、天、小時、分、秒。
(4)布林型別
boolean:變數值可以是true、false、null中的一種
2.2 特殊資料型別
(1)%type型別
使用%type關鍵字可以宣告乙個與指定列名稱相同的資料型別,它通常緊跟在指定列名的後面。
例如:宣告乙個與emp表中job列的資料型別完全相同的變數var_job
declare
var_job emp.job%type;
在上面的**中,若emp.job的型別為varchar2(10),則var_job的資料型別也是varchar2(10).
(2)record型別
record型別也稱為「記錄型別」,使用該型別的變數可以儲存由多個列值組成的一行資料。在宣告記錄型別變數之前,首先需要定義記錄型別,然後才可以宣告記錄型別變數。record型別是一種結構化的資料型別,它使用type語句進行定義,在record型別的定義結構中包含成員變數及其資料型別。例如:宣告乙個記錄型別emp_type
declare
type emp_type is record //宣告record型別emp_type
( var_ename varchar2(20), //定義字段/成員變數
var_job varchar2(20),
var_sal number
);empinfo emp_type; //定義變數
begin
......
(3)%rowtype型別
%rowtype型別的變數結合了%type和record型別變數的優點它可以根據資料表中行的結構定義一種特殊的資料型別,用來儲存從資料表中檢索到的一行資料,語法形式如下:
rowvar_name table_name%rowtype;
rowvar_name:表示可以儲存一行資料變數的變數名。
table_name:指定的表名。
2.3 定義變數和常量
(1)定義變數
定義變數必需的元素是變數名和資料型別,另外還有可選擇的初始值:
《變數名》 《資料型別》[(長度):=《初始值》];
例如:定義乙個用於儲存國家名稱的可變字串變數var_countryname,該變數的最大長度是50,並且初始值為『中國』
var_countryname varchar2(50):='中國';
(2)定義常量
定義常量必需的元素包括常量名、資料型別、常量值和constant關鍵字:
《常量名》 constant 《資料型別》:=《常量值》;
例如:定義乙個常量con_day,用來儲存一年的天數:
con_day constant integer:=365;
PL SQL程式設計(一)基礎篇
目標 1.掌握pl sql概念 2.掌握pl sql程式設計技術,包括編寫過程 函式 觸發器等 pl sql procedural language sql 是oracle在標準的sql語言上的擴充套件。pl sql不僅允許嵌入sql語言,還可以自定義變數和常量,允許使用條件語句和迴圈語句,允許使用...
PL SQL程式設計基礎 PL SQL簡介
課程教師 李興華 課程學習者 陽光羅諾 日期 2018 07 28 知識點 1 了解pl sql的主要特點 2 掌握pl sql塊的基本結構 pl sql語法結構 語法 declare 宣告部分,例如。定義變數 常量 游標。begin 程式編寫 sql語句 exeception 處理異常 end 說...
PLSQL 程式設計基礎
sql structured query language 一種結構化查詢語言,是一種資料庫查詢和程式語言,用於訪問資料以及查詢 更新和管理關係資料庫系統。簡單理解為平時說的 增刪改查 等等 不嚴謹 plsql procedural language sql 一種過程化sql語言,是面向過程的。在s...