Oracle之PLSQL

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


發佈了121 篇原創文章 · 獲贊 587 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章