一、什么是存盤程序
Oracle存盤程序可以說是一個記錄集吧,它是由一些PL/SQL陳述句組成的代碼塊,這些PL/SQL陳述句代碼像一個方法一樣實作一些功能(對單表或多表的增刪改查),然后再給這個代碼塊取一個名字,在用到這個功能的時候呼叫他就行了,
存盤程序的好處:
- 由于資料庫執行動作時,是先編譯后執行的,然而存盤程序是一個編譯過的代碼塊,所以執行效率要比PL/SQL陳述句高,
- 一個存盤程序在程式、在網路中互動時可以替代大堆的PL/SQL陳述句,所以也能降低網路的通信量,提高通信速率,
- 通過存盤程序能夠使沒有權限的用戶在控制之下間接地存取資料庫,從而確保資料的安全,
存盤程序示例:
--給指定的員工漲100塊錢的工資,并且列印漲前和漲后的薪水 create or replace procedure raiseSalary(eno in number) as --定義變數,保存漲前的薪水 psal emp.sal%type; begin --得到漲前的薪水 select sal into psal from emp where empno=eno; --漲100 update emp set sal=sal+100 where empno=eno; --要不要commit? --一般,不在存盤程序或者存盤函式中提交和回滾 dbms_output.put_line('漲前:'||psal||' 漲后:'||(psal+100)); end; /
二、什么是out引數?
輸出模式的引數,用于輸出值,會忽略傳入的值,在子程式內部可以對其進行修改, 輸出:子程式執行完畢后,out模式引數最終的值會賦值給呼叫時對應的<實參變數>, 注意:out模式引數的呼叫,必須通過變數,
out引數示例:
--查詢某個員工的姓名 月薪和職位 /* 1. 查詢某個員工的所有資訊 ---> out引數太多 2. 查詢某個部門中所有員工的所有資訊 --> 回傳集合 */ create or replace procedure queryempinfo(eno in number, pename out varchar2, psal out number, pjob out varchar2) as begin select ename,sal,empjob into pename,psal,pjob from emp where empno=eno; end; /
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/5516.html
標籤:Oracle
