• Oracle--plsql函数


    函数

    函数的参数都是in 输入参数,return是输出

    语法:

    create [or replace] function 函数名
    (参数1 类型1, 参数2 类型2,....)
     return 返回值类型
     is/as
        [定义变量]
     begin
         --执行语句
       return 结果;
     [exception
        --异常的处理
     ] 
     End

       ***1.函数的参数只能是in模式,可以省略in
        2.函数声明的时候,必须使用return 加返回值类型,
          注意,return的返回值类型只需要告诉类型,不需要定义长度,例如: return varchar2;
          变量:数据类型 varchar2(30)
        3.函数的结果必须通过return返回出去,也就是说,在begin中使用return 结果;

    无参函数:

    --编写一个函数, 返回一个helloworld
    --保存在数据库, 先编译, 再执行
    create or replace function sayHello
    return varchar2
    is
    --变量声明, ....
    begin
       --逻辑代码
       
       --使用return 返回结果
       return 'hello world';
    
    end;
    
    --oracle 的函数: to_char()    to_date()
    --函数的调用: 在sql语句中调用  
    select sayHello() from dual;

    有参函数:

    --根据员工的编号, 计算员工的年收入   (工资+ 奖金)*12
    create or replace function getYealSal(eno emp.empno%type)
    return number
    is
      v_sal emp.sal%type;
      v_comm emp.comm%type;
    begin
      select sal,comm into v_sal,v_comm from emp where empno = eno;
      if v_comm is null then
        return  v_sal * 12;
       else
          return  (v_sal+v_comm) * 12;
       end if;
    end;
    
    --调用
    select e.*, getYealSal(e.empno) 年收入 from emp e;

    存储过程与函数的区别

        1) 关键字不一样:  存储过程: procedure, 函数: function
        2) 存储过程中参数可以有 in 输入参数,  out 输出参数, 函数中参数全部是 in 输入参数
        3) 存储过程没有确定返回值类型, 但是可以使用out参数返回结果,  函数 需要确定返回值类型, 使用return 返回结果
        4) 存储过程在pl/sql块,或者exec 调用, 而函数,只能在sql语句中调用
  • 相关阅读:
    基于Acer安装双系统。
    js
    “su: cannot set user id: Resource temporarily unavailable”处理及limits.conf说明
    Oracle关于内存参数及大页设置的相关概念和设置之hugepage概念和配置
    Configure NGINX with Exchange 2010, 2013 and 2016 (including RPC / Outlook Anywhere access)
    基于zabbix_agent对主机进程监控的脚本及配置说明
    Zabbix基于CX_ORACLE对Oracle数据库的监控配置
    修改oracle数据库SGA和PGA大小
    使用zabbix监控oracle数据库
    Oracle DG切换
  • 原文地址:https://www.cnblogs.com/64Byte/p/12746619.html
Copyright © 2020-2023  润新知