oracle自定义函数
时间:2021-07-01 10:21:17
帮助过:38人阅读
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;
oracle自定义函数
标签:格式 模式 ora data 只读 schema 删除 系统内置函数 sch