首先明確PL/SQL主要作用作用: SQL語言適合管理關係型資料庫但是它無法滿足更複雜的數據處理,所以產生PLSQL。PLSQL用戶創建存儲過程、函數、觸發器、包及用戶自定義的函數。 特點: PLSQL具有高級語言所擁有的編程結構,使用PLSQL可以極大的提高資料庫編程的靈活性,PLSQL不是獨立存 ...
首先明確PL/SQL主要作用作用:
SQL語言適合管理關係型資料庫但是它無法滿足更複雜的數據處理,所以產生PLSQL。PLSQL用戶創建存儲過程、函數、觸發器、包及用戶自定義的函數。
特點:
PLSQL具有高級語言所擁有的編程結構,使用PLSQL可以極大的提高資料庫編程的靈活性,PLSQL不是獨立存在的,他是Oracle伺服器的一部分,可以再客戶端和伺服器端運行。
PLSQL的應用環境:客戶端和伺服器端
PLSQL基本結構:
塊頭區
IS
聲明區
Begin
執行區
Exception
異常區
塊頭區:塊頭區包含程式單元名字和參數,其中程式單元名字可以是函數(function),存儲過程(procedure),包(package-package body),參數具有一定的數據類型,該參數分為三類:in(輸入) out(輸出) inout(雙向的)
相對於函數必須有返回值
Create or replace function function_name(f float)
Return float
存儲過程是沒有返回值
Create or replcae procedure procedure_name (name in varchar2)
聲明區:
Plsql用到的一些變數等都在聲明區進行聲明,變數的數據類型可以是任意的Oracle數據類型,還可以進行constraint約束,比如非空等 not null
例子:
Var varchar2(10);
Var varchar2(10) not null;
Var varchar2(10) := ‘hello’;
Var integer default 3.14;
執行區:
用於完成該程式單元的功能邏輯Begin end作為起始標識可以包含null 但是不能為空
異常區:拋出異常
Exception
when exception_name1 then
error1;
when others then
error2;
整體實例:
Declare
var_first varchar2(10);--變數聲明
var_last varchar2(10);
BEGIN
select first_name,last_name
into var_first,var_last from emp;
dbms_output.put_line(‘first_name’||var_first);
dbms_output.put_line(‘last_name’||var_last);--dbms_output.put_line返回信息
EXCEPTION --異常區
WHEN no_data_found THEN
dbms_output.put_line('no data found');
END;