orace如何创建函数并调用
我们来定义一个oracle的函数
create or replace function 方法名(参数名1 参数类型,参数名2 参数类型,参数名3 参数类型)return 返回类型
is
num_C number; --定义变量
begin
--处理函数的过程--
--返回结果
return num_C;
end;
如:我们来创建一个处理加、减、乘、除的计算函数
/*** ****
*** 说明:创建一个加法、减法、乘法、除法的计算函数
** 参数:num_A 数字型参数A,num_B 数字型参数B,numType 计算类型
** 返回:数字类型
****/
create or replace function fun_Test(num_A number,num_B number,numType number)return number
is
num_C number; --定义变量
begin
--计算类型为1 时,表示进行加法运算---
if numType = 1 then
num_C := num_A + num_B;
end if;
--计算类型为2 时,表示进行减法运算---
if numType=2 then
num_C := num_A - num_B;
end if;
--计算类型为3 时,表示进行乘法运算---
if numType=3 then
num_C := num_A * num_B;
end if;
--计算类型为4 时,表示进行除法运算---
if numType=4 then
num_C := num_A/num_B;
end if;
--输出结果
dbms_output.put_line('输出值:'|| num_C);
return num_C;
end;
上面的处理函数用的if end if,也可用if elsif else end if进行处理(注意 不是else if ,是elsif)
if numType=1 then
num_C := num_A + num_B;
elsif numType=2 then
num_C := num_A - num_B;
elsif numType=3 then
num_C := num_A * num_B;
elsif numType=4 then
num_C := num_A / num_B;
else
--其它处理
end if;
执行创建后,可在数据的函数文件下看到

那么怎么调用我们创建的计算函数呢?
--执行加法运算--
select fun_Test(1,3,1) 结果 from dual;
--执行减法运算--
select fun_Test(8,3,2) 结果 from dual;
--执行乘法运算--
select fun_Test(4,3,3) 结果 from dual;
--执行除法运算--
select fun_Test(6,3,4) 结果 from dual;
也可以一起调用
--执行加法、减法、乘法、除反运算--
select fun_Test(1,3,1) 结果1,fun_Test(8,3,2) 结果2,fun_Test(4,3,3) 结果3,fun_Test(6,3,4) 结果4 from dual;
结果如下

附录一个生成单号函数方法
create or replace function fun_DxcWorkNo(prefix varchar2,singStr varchar2,billType integer)return varchar2
is
billNo varchar(20);
nowDate varchar(20);
begin
--获取单号的当前年月日时分秒 190412090428 ---
select to_char(Sysdate,'yyMMddHHmmss') into nowDate from dual;
--组成单号的字符串 Rw190412090428_1---
billNo:= prefix || nowDate || singStr|| billType;
return billNo;
end;
注意事项:
1) 如果函数的参数是字符串,那边它的数据类型是varchar2,而不是varchar2(20)
2) 函数定义的返回类型是什么类型,就得return 什么类型
3)如果包含if 判断,记得是if-elsif 不是 if-else if
orace如何创建函数并调用的更多相关文章
- oracle创建函数和调用存储过程和调用函数的例子(区别)
创建函数: 格式:create or replace function func(参数 参数类型) Return number Is Begin --------业务逻辑--------- End; ...
- MySql创建函数与过程,触发器, shell脚本与sql的相互调用。
一:函数 1:创建数据库和表deptartment, mysql> use DBSC; Database changed mysql), ), )); Query OK, rows affect ...
- MySQL存储过程和自定义函数、Navicat for mysql、创建存储过程和函数、调用存储过程和函数的区别
1 MySQL存储过程和函数 过程和函数,它们被编译后保存在数据库中,称为持久性存储模块(Persistent Stored Module,PSM),可以反复调用,运行速度快. 1.1 存储过程 存储 ...
- Direct3D Draw函数 异步调用原理解析
概述 在D3D10中,一个基本的渲染流程可分为以下步骤: 清理帧缓存: 执行若干次的绘制: 通过Device API创建所需Buffer: 通过Map/Unmap填充数据到Buffer中: 将Buff ...
- Entity Framework 6 Recipes 2nd Edition(11-4)译 -> 在”模型定义”函数里调用另一个”模型定义”函数
11-4.在”模型定义”函数里调用另一个”模型定义”函数 问题 想要用一个”模型定义”函数去实现另一个”模型定义”函数 解决方案 假设我们已有一个公司合伙人关系连同它们的结构模型,如Figure 11 ...
- Sql Server创建函数
在使用数据库的过程中,往往我们需要对有的数据先进行计算,然后再查询出来,所以我们就需要创建函数来完成这项任务,在数据库的Programmability(如图1)下面的Function中创建函数(如图2 ...
- JS中创建函数的三种方式及区别
1.函数声明 function sum1(n1,n2){ return n1+n2; }; 2.函数表达式,又叫函数字面量 var sum2=function(n1,n2){ return n1+n2 ...
- JS中函数的调用和this的值
调用每一个函数会暂停当前函数的执行,传递控制权和参数给新函数.除了声明时定义的形式参数,每个函数还接收两个附加的参数:this 和 arguments. 参数this在面向对象编程中非常重要,他的值取 ...
- Spring AOP在函数接口调用性能分析及其日志处理方面的应用
面向切面编程可以实现在不修改原来代码的情况下,增加我们所需的业务处理逻辑,比如:添加日志.本文AOP实例是基于Aspect Around注解实现的,我们需要在调用API函数的时候,统计函数调用的具体信 ...
随机推荐
- activemq修改端口
1.修改TCP 61616端口 cd /apps/svr/activemq/conf cat activemq.xml |grep transportConnector <transportCo ...
- SQLSERVER 查询系统中的所有表的数量
SELECT a.name, b.rows FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.id WHERE (a.type = ...
- 爬坑二 activiti流数据库版本错误引发的问题
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'actModelCont ...
- github一些事
我的个人github地址是:https://github.com/BUGDuYu 我们开发团队小组的github地址是: https://github.com/APPdoctrine 资源推荐: gi ...
- centos6.9系列LNMP环境的安装
一.Nginx 1.先解决Nginx的依赖关系: yum install -y pcre-devel openssl-devel 2.安装wget:sudo yum -y install wget 3 ...
- CAS部署在Windows上
我这里有下载好的cas.war和tomcat7,然后我在将cas.war放在tomcat目录下的webapps下,启动tomcat自动解压war包.浏览器输入http://localhost:8080 ...
- 第一次远程ubuntu用c写Hello Word出现的问题
2019-03-26 21:48:48 之前已经学过c语言,但是一直是在win10上用VC++6.0来写代码的,现在想尝试在linux下用c语言 其实主要目的是来学习linux 1.问题: 在ubun ...
- 20175312 2018-2019-2 实验一《Java开发环境的熟悉》实验报告
20175312 2018-2019-2 实验一<Java开发环境的熟悉>实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试J ...
- Asp.net 按钮幕布遮盖效果实现方式
Asp.net button按钮点击后想要实现幕布效果来等待服务器端执行完成,这种需求虽说看起来很简单,但真实做起来并不是那么简单,涉及了很多细节点,而对于深入理解asp.net button生命周期 ...
- js三元表达式
条件 ? true的时候执行 : false时候执行 const x = 20; let answer; if (x > 10) { answer = 'greater than 10'; } ...