Oracle之PLSQL,oracleplsql
PL/SQL Developer是一個整合式開發環境,專門開發面向Oracle資料庫的應用。PL/SQL也是一種程式語言,叫做過程化SQL語言(Procedural Language/SQL)它是Oracle資料庫對SQL語句的擴充。在普通SQL語句的使用上增加了程式設計語言的特點,所以PL/SQL把資料操作和查詢語句組織在PL/SQL代碼的過程性單元中,通過邏輯判斷、迴圈等操作實現複雜的功能或者計算,使SQL語言具有過程處理能力。PL/SQL 只有 Oracle 資料庫有。
一個PL/SQL程式結構:
declare
說明部分 (變數說明,游標申明,例外說明)
begin
語句序列 (DML語句)……
exception
例外處理語句
end;
這裡說一下變數的問題:
var1 char(15);--說明變數名、資料類型和長度後用分號結束說明語句。
married boolean:=true;--用“:=”表示等號“=”,用“=”表示“==”。
my_name emp.ename%type;--引用型變數,即my_name的類型與emp表中ename列的類型一樣
emp_rec emp%rowtype;--記錄型變數
記錄型變數分量的引用:emp_rec.ename:='adams';
一個例子示範下PLSQL:按員工的工種漲工資,總裁1000元,經理800元,其他人漲400元。
declare cursor cemp is select empno,empjob from emp; pempno emp.empno%type; pjob emp.empjob%type;begin rollback; open cemp; loop --取一條記錄 fetch cemp into pempno,pjob; exit when cemp%notfound; --判斷職位 if pjob = 'PRESIDENT' then update emp set sal=sal+1000 where empno=pempno; elsif pjob = 'MANAGER' then update emp set sal=sal+800 where empno=pempno; else update emp set sal=sal+400 where empno=pempno; end if; end loop; close cemp; commit; dbms_output.put_line('完成');end;/
沒漲之前:
漲之後:
把SQL語言的資料操縱能力與過程語言的資料處理能力結合起來,使得PLSQL面向過程但比過程語言簡單、高效、靈活實用。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。