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面向過程但比過程語言簡單、高效、靈活實用。