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

你可能感兴趣的:(oracle函数)