函数与存储过程相似,也是数据库中存储的已命名PL-SQL程序块。函数的主要特征是它必须有一个返回值。通过return来指定函数的返回类型。在函数的任何地方可以通过return expression语句从函数返回,返回类型必须和声明的返回类型一致。
语法:
create [or replace] functionfunction_name[(parameter_list)]
returndatatype
{is/as}[local_declarations]
beginexecutable_statements;[exception
exception_handlers;]
end;
说明:
function_name:函数名称。
parameter_list:函数列表,可选。
return 自居:指定函数的返回类型,不能指定大小。
local_declarations:局部变量声明,可选。
executable_statements:要执行的PL-SQL语句。
exception_handlers:异常处理,可选。
or repalce:是否覆盖,可选。
例:根据员工编号获得员工薪水。
--根据no查询sal
CREATE OR REPLACE FUNCTION fun_getSal(eno NUMBER)RETURN NUMBER --返回类型
ASv_sal emp.sal%TYPE;BEGIN
SELECT sal INTO v_sal FROM emp WHERE empno =eno;RETURNv_sal;
EXCEPTIONWHEN OTHERS THENraise_application_error(-20012,‘该雇员不存在‘);END fun_getSal;
调用函数:
--调用函数,自定义异常处理
DECLAREv_salNUMBER;
emp_20012 EXCEPTION;
PRAGMA EXCEPTION_INIT(emp_20012,-20012);BEGINv_sal:=fun_getsal(7788);
dbms_output.put_line(‘sal:‘||v_sal);
EXCEPTIONWHEN emp_20012 THENdbms_output.put_line(‘该雇员不存在‘);END;
注意:
1、函数参数和返回类型只声明参数,不指定大小。
2、可执行部分至少有一条return语句。
3、调用函数时,不能将函数作为单独的语句存在,可以作为表达式的一部分。
适用场合:
1、如果需要返回多个值和不返回值,就使用存储过程;如果只需要返回一个值,就使用函数。
2、存储过程一般用于执行一个指定的动作,函数一般用于计算和返回一个值。
3、可以再SQL内部调用函数来完成复杂的计算问题,但不能调用存储过程。
oracle 自定义函数
标签:sel ror 指定 类型 other code 函数名 ons except
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:http://www.cnblogs.com/lisidapao/p/6877141.html