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;
  • 相关阅读:
    实现Maven自动下载源代码包并关联
    Maven3入门篇
    小典故:为什么数组的索引总是从0开始,而不是1?
    C语言算法探究之(一):算法的准确性
    C语言算法探究之(二):算法的准确性
    Visual Studio对无用引用(unused using)的处理方法
    C# CRC8的实现(原创)
    C#4.0:新功能和展望
    C#控件重绘学习(一)
    双加号(++)在C#中的用法解释
  • 原文地址:https://www.cnblogs.com/duguangming/p/10846427.html
Copyright © 2011-2022 走看看