博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle 自定义函数
阅读量:7211 次
发布时间:2019-06-29

本文共 1337 字,大约阅读时间需要 4 分钟。

函数

  函数与存储过程相似,也是数据库中存储的已命名PL-SQL程序块。函数的主要特征是它必须有一个返回值。通过return来指定函数的返回类型。在函数的任何地方可以通过return expression语句从函数返回,返回类型必须和声明的返回类型一致。

语法:

  create [or replace] function function_name  [(parameter_list)]  return datatype  {
is/as}  [local_declarations]  begin    executable_statements;  [exception    exception_handlers;]  end;

说明:

  function_name:函数名称。

  parameter_list:函数列表,可选。

  return 自居:指定函数的返回类型,不能指定大小。

  local_declarations:局部变量声明,可选。

  executable_statements:要执行的PL-SQL语句。

  exception_handlers:异常处理,可选。

  or repalce:是否覆盖,可选。

例:根据员工编号获得员工薪水。

--根据no查询salCREATE OR REPLACE FUNCTION fun_getSal(eno NUMBER)RETURN NUMBER   --返回类型ASv_sal emp.sal%TYPE;BEGIN  SELECT sal INTO v_sal FROM emp WHERE empno = eno;  RETURN v_sal;  EXCEPTION    WHEN OTHERS THEN      raise_application_error(-20012,'该雇员不存在');END fun_getSal;

调用函数:

--调用函数,自定义异常处理DECLARE   v_sal NUMBER;  emp_20012 EXCEPTION;  PRAGMA EXCEPTION_INIT(emp_20012,-20012);BEGIN  v_sal:=fun_getsal(7788);  dbms_output.put_line('sal:'||v_sal);  EXCEPTION    WHEN emp_20012 THEN      dbms_output.put_line('该雇员不存在');END;

注意:

  1、函数参数和返回类型只声明参数,不指定大小。

  2、可执行部分至少有一条return语句。

  3、调用函数时,不能将函数作为单独的语句存在,可以作为表达式的一部分。

适用场合:

  1、如果需要返回多个值和不返回值,就使用存储过程;如果只需要返回一个值,就使用函数。

 

  2、存储过程一般用于执行一个指定的动作,函数一般用于计算和返回一个值。

 

  3、可以再SQL内部调用函数来完成复杂的计算问题,但不能调用存储过程。

 

转载于:https://www.cnblogs.com/lisidapao/p/6877141.html

你可能感兴趣的文章
**PHP中替换换行符
查看>>
更改数据库的兼容模式
查看>>
确保帐户安全 谈MySQL数据库安全解决方案
查看>>
MySQL修改root密码的多种方法
查看>>
Kali 系统 apt-get update更新失败解决方案
查看>>
用nginx TCP反向代理作mail邮件代理
查看>>
zabbix中文配置指南
查看>>
Windows系统下,使用Emacs+Putty操作远程机器
查看>>
ORA-00600:[kclchkinteg_2]及[kjmsm_epc]内部错误一例
查看>>
【Linux】基础每日一命之cut&mv&scp命令
查看>>
浪擎全融合灾备云获大数据安全领域最佳创新奖
查看>>
建议重写equals方法时也一并重写hashCode方法
查看>>
根据post请求调取app接口,map对象转字符串,json对象转字符串
查看>>
jenkins添加linux作为slave
查看>>
nginx学习(一):基本安装
查看>>
Oracle Enterprise Manager 11g 启停
查看>>
RabbitMQ详解(一)
查看>>
基于DNS实现智能化访问网站
查看>>
单主机Docker容器VLAN划分
查看>>
利用SVN的post-commit钩子实现多项目自动同步
查看>>