Oracle之PLSQL,oracleplsql

來源:互聯網
上載者:User

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


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.