zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    牛客小白月赛2 D 虚虚实实 【欧拉图】【连通图】
    牛客小白月赛2 A 数字方阵【随机】【找规律】
    牛客小白月赛1 J おみやげをまらいました 【MAP】
    牛客小白月赛1 I あなたの蛙が帰っています 【卡特兰数】
    欧拉函数
    乘法逆元
    扩展欧几里得
    快速乘法
    JPEG图像压缩出现资源不足问题的解决
    如何避免关键程序被意外关闭?
  • 原文地址:https://www.cnblogs.com/duguangming/p/10846427.html
Copyright © 2011-2022 走看看