PL/SQL程式之預存程序和儲存函數

來源:互聯網
上載者:User

預存程序和儲存函數指儲存在資料庫中供所有使用者程式調用的子程式叫預存程序、儲存函數。建立預存程序:用CREATE PROCEDURE命令建立預存程序和儲存函數。文法:create [or replace] PROCEDURE 過程名(參數列表) AS PLSQL子程式體;註:預存程序一般用於高度安全的系統中例一:為所有員工漲10%的工資建立預存程序create or replace procedure updateSalas--plsql程式塊--預存程序不能有declarecreate or replace procedure updateSalascursor c1 is select sal,empno from emp;emp_sal emp.sal%type;emp_no emp.empno%type;beginopen c1;loop  fetch c1 into emp_sal,emp_no;  exit when c1%notfound;  update emp set sal=emp_sal*1.1 where empno=emp_no;  end loop;  close c1;  end;調用預存程序方式一:SQL> begin  2  updateSal;  3  end;  4  /方式二:SQL> exec updateSal;調用完成後手工提交一下【Commit語句:結束當前事務, 使當前事務所執行的全部修改永久化。】儲存函數函數(Function)為一命名的儲存程式,可帶參數,並返回一計算值。函數和過程的結構類似,但必須有一個RETURN子句,用於返回函數值。函數說明要指定函數名、結果值的類型,以及參數類型等。建立儲存函數的文法:CREATE [OR REPLACE] FUNCTION 函數名(參數列表)  RETURN  函數實值型別ASPLSQL子程式體;例二:擷取指定員工的年度營收create or replace function sumSal(emp_no number)--function(參數的值  必須有類型)--傳回值類型return number--必須有傳回值as--聲明變數emp_sal emp.sal%type;emp_comm emp.comm%type;total emp.sal%type;begin  select sal,comm into emp_sal,emp_comm from emp where empno=emp_no;  total:=emp_sal*12+nvl(emp_comm,0);  return total;--必須返回  傳回值類型一定相同end;調用方法方法一:SQL> begin  2  dbms_output.put_line(sumSal(7369));  3  end;  4  /方法二:declarev_sal number;beginv_sal:=sumSal(7369);dbms_output.put_line(v_sal);end;結果12777.6

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.