oracle函数
函数
简介
函数:也是一个有名字的plsql代码块,创建之后保存在数据库中
数据库启动时加载
函数没有参数输入输出之分
但函数必须有返回值
调用时必须使用它的返回值
可以在sql 语句中使用,也可以在plsql中使用
创建函数
创建语法
create [or replace] function 函数名[(形参 数据类型,...)]
return 返回值类型
is
声明部分;
begin
plsql代码块;
至少有return语句;
exception
异常处理;
end;
创建一个函数
求一个数的阶乘
create or replace function fn(n number)
return number
is
--声明一个变量保存阶乘结果
res number(16):=1;
begin
for i in 1..n loop
res:=res*i;
end loop;
--返回语句
return res;
end;
函数的调用
注意,不能直接在plsql代码中使用函数
begin
fn(4);--错误的,不能直接调用
end;
1 在sql语句中调用
SQL> select fn(4) from dual;
FN(4)
----------
24
SQL>
2在plsql代码块中打印函数的返回结果
begin
dbms_output.put_line(fn(5));
end;
输出
120
3将函数的返回值,赋给一个变量
declare
--声明一个变量,保存函数返回结果
c number(16);
begin
c:=fn(6);
end;
递归调用
递归调用(自己调用自己)
计算一个数据的阶乘
create or replace function f1(n number)
return number
is
begin
if n<=2 then
return n;
else
return n*f1(n-1);
end if;
end;
SQL> select f1(5) from dual;
F1(5)
----------
120

浙公网安备 33010602011771号