首頁 >資料庫 >Oracle >oracle中預存程序的out參數是什麼

oracle中預存程序的out參數是什麼

WBOY
WBOY原創
2022-03-07 15:48:565876瀏覽

在oracle中,預存程序中的out參數是輸出模式的參數,用於輸出值,會忽略傳入的值,在子程序內部可以對其進行修改,子程序執行完畢後, out模式參數最終的值會賦值給調用時對應的實參變量,其中out模式參數的調用,必須通過變量。

oracle中預存程序的out參數是什麼

本教學操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。

oracle中預存程序的out參數是什麼

一、什麼是預存程序

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模式參數最終的值會賦值給呼叫時對應的cb95d00da03ee0ddc4aa0764d72aca07。 注意: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;
/

推薦教學:《Oracle影片教學

以上是oracle中預存程序的out參數是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn