Oracle学习笔记之用户自定义函数
自定义函数语法格式:

用户自定义的函数,可以直接在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学习笔记之用户自定义函数的更多相关文章
- Oracle学习笔记:trunc函数
在Oracle中可以使用trunc函数进行日期截取和数字截取,具体使用方法如下: 1.trunc(for dates) 日期截取 语法:trunc(date,[fmt]) select trunc(s ...
- Oracle学习笔记:wm_concat函数合并字段
在Oracle中使用wm_concat(column)可以实现字段的分组合并,逗号分隔. 例如,现有表temp_cwh_test: -- 创建临时表 create table temp_cwh_tes ...
- Oracle学习笔记_03_单行函数
1.SQL函数: 单行函数.多行函数 单行函数: 操作数据对象 接受参数返回一个结果 只对一行进行变换 每行返回一个结果 可以转换数据类型 ...
- Oracle 学习笔记 18 -- 存储函数和存储过程(PL/SQL子程序)
PL/SQL子程序 它包含了函数和过程.此功能是指用户定义的函数.和系统功能是不同的.子程序通常完成特定的功能PL/SQL座.,能够被不同的应用程序多次调用.Oracle提供能够把PL/SQL程序存储 ...
- Oracle学习笔记:decode函数
decode函数主要作用:将查询结果翻译成其他值(即以其他形式变现出来) 使用方法: SELECT DECODE(colunm_name,值1,翻译值1,值2,翻译值2……值n,翻译值n,缺省值) F ...
- Oracle学习笔记_05_分组函数
组函数:avg sum max min count group by having group by 增强:rollup cube grouping groupi ...
- Oracle学习笔记之四sp1,Oracle 11g的常用函数
从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i) 分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...
- oracle学习笔记第一天
oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字 1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...
- Oracle学习笔记之四,SQL语言入门
1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...
随机推荐
- 201521123062《Java程序设计》第4周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 多态定义:同种形态不同定义 类注释格式 继承,共同行为及属性 在instanceof检查过后 ...
- 201521123105 第四周Java学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 继承与多态的概念与实现父类与之类的关系解决代码复用的办法 2. 书面作业 2.1 将在网上商 ...
- 201521123037 《Java程序设计》第1周学习总结
#1.本章学习总结 了解java的发展历程 能够区分JVM.JRE.JDK之间的关系 了解文件名.类名要相同,且文件名大小写代表不同的名称 初步了解java编程语句 学会用控制台编译java程序 #2 ...
- 201521123109《java程序设计》第九周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1. 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自 ...
- linux fork两次避免僵尸进程的程序(简单)
#include<stdio.h> #include<unistd.h> int main() { pid_t pid,pid1; int status; ) { printf ...
- Mybatis第四篇【多表连接】
Mybatis多表连接 我们在学习Hibernate的时候,如果表涉及到两张的话,那么我们是在映射文件中使用<set>..<many-to-one>等标签将其的映射属性关联起来 ...
- Spring第五篇【cglib、手动实现AOP编程】
前言 到目前为止,已经简单学习了Spring的Core模块.也会怎么与Struts2框架进行整合了-.于是我们就开启了Spring的AOP模块了-在讲解AOP模块之前,首先我们来讲解一下cglib代理 ...
- php显示距当前多长时间
<?php header("Content-type: text/html; charset=utf-8");date_default_timezone_set('PRC') ...
- [转]IOS开发中的CGFloat、CGPoint、CGSize和CGRect
http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGGeometry/Reference ...
- 如何用kaldi做孤立词识别-初版
---------------------------------------------------------------------------------------------------- ...