您的位置:首页 > 数据库 > Oracle

Oracle自定义函数及应用举例(不同输入输出参数情况)

2017-04-30 15:00 309 查看
Oracle自定义函数
函数的定义:
create/replace function 函数名 (参数名 输入输出类型 字段类型) return 字段类型 is
变量名 字段类型; --函数的内部变量,需要包含字段类型的长度
begin
主体;
return(变量名);
end 函数名;
观察到:
定义函数的参数和输出类型的时候不需要考虑字段类型的长度;
函数的内部变量需包含字段类型的长度;
函数可以没有输入输出参数,但一定要有返回(return)的数据类型,因此必须有内部变量存储return的数据;
函数的输入输出参数可以在主体中直接使用。
函数的执行:
--sqlplus
var 变量名 字段类型(包含长度);
exec :变量名:=函数名(参数的值,接收输出变量的变量名)
--developer
select 函数名(参数) from dual;


以下为例子:
--没有输入输出参数的函数
create function fun_emp01 return nvarchar2 is
myresult nvarchar2(50);
begin
select max(first_name) into myresult from employees;
return(myresult);
end fun_emp01;
--执行
select fun_emp01() from dual;

--只带输入参数
create function fun_emp03(myvar1 in nvarchar2) return number is
myresult number;
begin
select count(1) into myresult from employees where job_id=myvar1;
return(myresult);
end fun_emp03;
--执行
select fun_emp03('AD_VP') from dual;

--带输入和输出
create or replace function fun_emp04(chlvar0 nvarchar2,  chlvar out number) return nvarchar2 is
myresult nvarchar2(50);
begin
select max(first_name),count(1) into myresult,chlvar from employees where job_id=chlvar0;
return(myresult);
end fun_emp04;
--执行
declare
var2 nvarchar2(50);
var3 number;
begin
var2:=fun_emp04('IT_PROG',var3);
dbms_output.put_line(var3);
dbms_output.put_line(var2);
end;


博文仅供参考,欢迎大家来访。如有错误之处,希望批评指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息