PL/SQL函数操作实例与说明

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关键字用于创建一个独立的函数

创建一个独立的函数窗口截图:

PL/SQL函数操作实例与说明_第1张图片

创建一个独立的函数的源码:

-- 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函数截图:

PL/SQL函数操作实例与说明_第2张图片

emp表中数据:

PL/SQL函数操作实例与说明_第3张图片

定义和调用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;

运行结果截图:

PL/SQL函数操作实例与说明_第4张图片

你可能感兴趣的:(数据库知识库)