Oracle创建函数

创建函数:

语法:
  create [or replace] function 函数名 [(参数名1 [in/out/inout] 参数类型 ,...)]
    return 返回值的类型
  as/is
    变量声明部分
  begin
    业务逻辑处理部分
    return 变量/常量;
   -- 按位置传递参数
    call pro_sum_test(1,2,3);
   -- 按名称的方式传递参数
    call pro_sum_test(v_num2=>2,v_num1=>1,v_num3=>3);
   -- 按名称的方式传递参数
    call pro_sum_test(v_num2=>2,v_num1=>1,v_num3=>3);
   -- 混合传递参数 必须先按位置 再按名称传递
    call pro_sum_test(1,v_num3=>3,v_num2=>2);
   -- 不能先按名称 再按位置传递
    call pro_sum_test(v_num2=>2,v_num1=>1,3);exception
    异常处理部分
  end;
注意:同形参类型一样,返回值类型也不能有精度
函数和过程的语法差不多,什么时候使用过程, 什么时候使用函数?所有能用函数实现的功能都能用过程来实现。在真正的开发中,一般如果只需要一个返回值 你最好使用函数来定义,如果需要多个返回值 最好使用过程来定义。
 
举例:创建一个函数,返回0到10之间的一个随机整数
create or replace function fun_random return number
is
-- 声明随机数变量
v_num number(5);
begin
--获取0到10之间的一个随机数
v_num:=trunc(dbms_random.value(0,10));
return v_num;
end;
调用函数一般使用匿名块:
--通过匿名块调用函数
declare
-- 声明变量接收函数的返回值
v_num number(5);
begin
-- 调用函数
v_num:=fun_random();
--打印结果
dbms_output.put_line('随机数:'||v_num);
end;
原文地址:https://www.cnblogs.com/duguangming/p/10846427.html