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关键字用于创建一个独立的函数
扫描二维码关注公众号,回复: 1110044 查看本文章
创建一个独立的函数窗口截图:
创建一个独立的函数的源码:
-- 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;