一、自定义函数创建 语法格式: create [or replace] function function_name/*函数名称*/ (/*参数定义部分*/ parameter_name1 model1 dataType1, parameter_name2 model2 dataType2, parameter_name3 model3 dataType3, .... ) return return_datatype /*定义返回值类型*/ IS/AS [local_declarations]/*声明临时变量*/ BEGIN function_body/*函数体部分*/ return scalar_expression/*返回语句*/ END function_name; 解析: or replace:是否覆盖,可选 function_name:函数名称 return 自居:指定函数的返回类型,不能指定大小 local_declarations:局部变量声明,可选 function_body:要执行的PL-SQL语句 参数模式有3种(如果没有注明,参数默认的类型为in) in:为只读模式,在函数中,参数的值只能被引用,不能被改变 out:为只写模式,只能被赋值,不能被引用 in out:可读可写 示例1: --根据机构编号查询机构名 CREATE OR REPLACE FUNCTION GET_ORG_NAME(P_ORG_ID IN NUMBER) RETURN VARCHAR2 IS V_ORG_NAME VARCHAR2(4000); BEGIN SELECT ORG_NAME INTO V_ORG_NAME FROM SYS_ORG WHERE ORG_ID = P_ORG_ID; RETURN(V_ORG_NAME); END GET_ORG_NAME;
二、自定义函数调用 自定义函数的调用方法跟系统内置函数的调用方法相同,可以直接在select语句中调用,也可以在函数中调用,如下: select GET_ORG_NAME(20) from SYS_ORG; str :=GET_ORG_NAME(20); 三、自定义函数的删除 自定义函数的删除方法类似于表的删除,语法格式如下: drop function [schema.]functionName;