PL/SQL函式操作例項與說明
阿新 • • 發佈:2018-12-26
PL/SQL函式與過程相同,不同之處在於函式有一個返回值。
建立函式
建立一個獨立函式可以使用CREATE FUNCTION語句建立。CREATE OR REPLACE PROCEDURE語句簡化語法如下:
CREATE[OR REPLACE]FUNCTION function_name
[(parameter_name [IN| OUT |IN OUT] type [,...])]RETURN return_datatype
{IS|AS}BEGIN< function_body >END[function_name];
這裡,
function-name 指定函式的名稱
[OR REPLACE] 選項允許修改現有的函式
可選的引數列表中包含的名稱,模式和型別的引數。IN表示該值將被從外部傳遞和OUT表示該引數將被用於過程外面返回一個值
函式必須包含一個return語句
RETURN 子句指定要在函式返回的資料型別
function-body 包含可執行部分
AS關鍵字來代替了IS關鍵字用於建立一個獨立的函式
建立一個獨立的函式視窗截圖:
建立一個獨立的函式的原始碼:
-- Created on 2018/3/29 by E.WANG --陣列求和函式 create or replace function SumOfVarray(nu in int_varray,sumV out int) return int is temp int:=0; begin for i in 1..nu.count loop temp:=temp+nu(i); end loop; sumV:=temp; return sumV; end;
定義和呼叫PL/SQL函式截圖:
emp表中資料:
定義和呼叫PL/SQL函式例項原始碼:
-- Created on 2018/3/29 by E.WANG declare --宣告陣列 --用上一篇建立整型陣列型別 numV int_varray; --用於儲存陣列求和結果 res int; --用於儲存所有薪資求和結果 salTotal number:=0; --宣告定義員工薪資求和函式 funct ion getTotalSal return number is --用於儲存求和結果並返回 salTotal number:=0; begin select sum(sal) into salTotal from emp; return salTotal; end; begin --初始化陣列 numV:=int_varray(12,23,15,25,78); --呼叫函式SumOfVarray res:=SumOfVarray(numV,res); dbms_output.put_line('The Sum of int_varray(12,23,15,25,78): '|| res); --呼叫函式getTotalSal salTotal:=getTotalSal(); dbms_output.put_line('The Sum of all emp''s salary : '|| salTotal); end;