自定义函数语法格式:

  用户自定义的函数,可以直接在sql语句中直接调用,并且任何一个funciton都必须有返回值,而且该函数声明后,是保存在数据端的,我们随时可以使用;注意:函数只能有一个返回值,如果想返回多个数据,可通过out类型参数将数据传到函数外部;

例如:定义一个函数,该函数根据员工姓名以及部门编号,查找该员工是否在emp中存在,如果存在返回true否则返回false;

createorreplacefunction myFunction(mName invarchar2,mNo innumber)returnbooleanis

  flag boolean:=false;

  total number;

 

begin

    selectcount(*)into total  from emp where emp.ename=mName and emp.deptno=mNo;

    if total>0then

      flag:=true;

    else flag:=false;

    endif;

  return flag;

end myFunction;

测试:

-- Created on 2017/10/19 by ADMINISTRATOR

declare

    f boolean;

 

begin

  f:=myfunction('SMITH',30);

  if f then dbms_output.put_line('true');

  else dbms_output.put_line('false');

  endif;

 

end;

例如:定义一个函数,该函数根据员工姓名以及部门编号,查找该员工是否在emp中存在,如果存在返回true否则返回false;如果存在该员工,那么就将该条数据拿到函数外面;

createorreplacefunction myFunction(mName invarchar2,mNo innumber,msg out emp%rowType)returnbooleanis

  flag boolean:=false;

  total number;

 

begin

    selectcount(*)into total  from emp where emp.ename=mName and emp.deptno=mNo;

    if total>0then

      flag:=true;

      --将该条数据赋值给msg变量

      select emp.*into msg from emp where  emp.ename=mName and emp.deptno=mNo;

    else flag:=false;

    endif;

  return flag;

end myFunction;

测试:

declare

    f boolean;

    msg emp%rowtype;

begin

  f:=myfunction('SMITH',20,msg);

  if f then dbms_output.put_line('true');

  else dbms_output.put_line('false');

  endif;

 

  dbms_output.put_line(msg.empno||':'||msg.ename||':'||msg.hiredate);

end;

例如:定义一个函数,该函数根据员工姓名以及部门编号,查找该员工是否在emp中存在,该函数返回值为该条记录;

createorreplacefunction myFunction(mName invarchar2,mNo innumber,msg out emp%rowType)return emp%rowtypeis

  flag boolean:=false;

  total number;

 

begin

    selectcount(*)into total  from emp where emp.ename=mName and emp.deptno=mNo;

    if total>0then

      flag:=true;

      --将该条数据赋值给msg变量

      select emp.*into msg from emp where  emp.ename=mName and emp.deptno=mNo;

    else flag:=false;

    endif;

  return msg;

end myFunction;

测试:

-- Created on 2017/10/19 by ADMINISTRATOR

declare  

    msg emp%rowtype;

begin

  msg:=myfunction('SMITH',20,msg);

  dbms_output.put_line(msg.empno||':'||msg.ename||':'||msg.hiredate);

end;

Oracle学习笔记之用户自定义函数的更多相关文章

  1. Oracle学习笔记:trunc函数

    在Oracle中可以使用trunc函数进行日期截取和数字截取,具体使用方法如下: 1.trunc(for dates) 日期截取 语法:trunc(date,[fmt]) select trunc(s ...

  2. Oracle学习笔记:wm_concat函数合并字段

    在Oracle中使用wm_concat(column)可以实现字段的分组合并,逗号分隔. 例如,现有表temp_cwh_test: -- 创建临时表 create table temp_cwh_tes ...

  3. Oracle学习笔记_03_单行函数

    1.SQL函数: 单行函数.多行函数 单行函数:       操作数据对象       接受参数返回一个结果       只对一行进行变换       每行返回一个结果       可以转换数据类型  ...

  4. Oracle 学习笔记 18 -- 存储函数和存储过程(PL/SQL子程序)

    PL/SQL子程序 它包含了函数和过程.此功能是指用户定义的函数.和系统功能是不同的.子程序通常完成特定的功能PL/SQL座.,能够被不同的应用程序多次调用.Oracle提供能够把PL/SQL程序存储 ...

  5. Oracle学习笔记:decode函数

    decode函数主要作用:将查询结果翻译成其他值(即以其他形式变现出来) 使用方法: SELECT DECODE(colunm_name,值1,翻译值1,值2,翻译值2……值n,翻译值n,缺省值) F ...

  6. Oracle学习笔记_05_分组函数

    组函数:avg  sum  max  min   count group by having group by 增强:rollup      cube     grouping      groupi ...

  7. Oracle学习笔记之四sp1,Oracle 11g的常用函数

    从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i)    分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...

  8. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  9. Oracle学习笔记之四,SQL语言入门

    1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...

随机推荐

  1. 201521123019 《Java程序设计》第5周学习总结

    1. 本章学习总结 2. 书面作业 一.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. Ans ...

  2. 201521123025 <<java程序设计>>第3周学习总结

    1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...

  3. 201521123098 JAVA课程设计

    1.团队课程设计博客链接 http://www.cnblogs.com/agts/p/7067948.html 2.个人负责模块或任务说明 个人任务:实现初始界面中的登录.注册模块,以及数据库的连接和 ...

  4. Mysql免安装版配置【图文版和文字版】

    图文版 配置环境变量 新建一个my.ini文件,添加下面内容 [mysqld] basedir=C:\\software\Mysql\mysql-5.7.14-winx64 datadir=C:\\s ...

  5. webservice03#schema#元素属性定义

    工具软件XMLSpy 2010 破解版,是非常好的写XMl的工具软件. 1,Schema的好处: Schema出现的目的是通过一个更加合理的方式来编写xml的限制文件(基于xml语法的方式): Sch ...

  6. mybatis-java-依赖注入

    第一种 setXXX形式的注入 我们的所有dao都会继承自定义的BaseDao,因此在BaseDao中完成对所有dao的注入 在DaoUtil中增加方法injectDao()来注入具体的dao pac ...

  7. 参加Java培训你必须知道的五点真相!

    相信大家都有过到招聘网站投简历.找工作的经历.当一份份简历发出三天后,左等右等连一个电话没有等来,心中不免有些失落,有些焦虑.这个时侯,很多培训机构就会纷纷给你打电话以各种名义让你参加各种IT技能培训 ...

  8. ASP.NET Core 认证与授权[1]:初识认证

    在ASP.NET 4.X 中,我们最常用的是Forms认证,它既可以用于局域网环境,也可用于互联网环境,有着非常广泛的使用.但是它很难进行扩展,更无法与第三方认证集成,因此,在 ASP.NET Cor ...

  9. win7旗舰版最新激活密钥

    Win7旗舰.企业.专业版的激活密钥(32位.64位均可用).FJGCP-4DFJD-GJY49-VJBQ7-HYRR2 AcerVQ3PY-VRX6D-CBG4J-8C6R2-TCVBD Alien ...

  10. Lowbit Sum 规律

    Lowbit Sum Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) SubmitSt ...