自定义函数

C语言:自定义函数中调用自定义函数的方法 自定义函数中调用自定义函数 在我们编写C语言程序时,可以将要经常用到的或者有自己单独作用的那一部分代码独立成一个函数,不仅可以简化我们的程序,还可以使我们的程序更加可见话。 阅读详情

语法:
create or replace function 函数名字(
    参数1   数据类型(不能有长度),
    参数2   数据类型(不能有长度),
    参数3   数据类型(不能有长度)
)return 数据类型(没有长度)
is
    参数4 数据类型(可以有长度);
    参数5 数据类型(可以有长度);
begin
    函数要执行的内容;
    return 返回值;
end;

例子1:给定一个员工编号,查询员工的工资
create or replace function findSalFun(
    eno   emp.empno%type
)return emp.sal%type 
is
    v_sal emp.sal%type;
begin
    select sal into v_sal from emp where empno=eno;
    return v_sal;
end;
测试:
declare
    v_sal emp.sal%type;
begin
    v_sal:=findSalFun(7369);
    --xxx:=length('abc');
    --yyy:=to_char(,);
    dbms_output.put_line(v_sal);
end;

set serveroutput on;

call findSalFun(7369);

函数还可以放在sql语句中调用
select empno,findSalFun(empno) from emp;

例子2:给定一个名字,根据名字,计算员工的税金
create or replace function computeFaxFun(
    v_name emp.ename%type
)return emp.sal%type
is
    v_sal emp.sal%type;
    mid_sal emp.sal%type;
    fax   emp.sal%type;
begin
    select sal into v_sal from emp where ename=v_name;
    mid_sal:=v_sal - 3500;
    if mid_sal<=0 or mid_sal is null then fax:=0;
        elsif mid_sal<=1500 then fax:=mid_sal*0.03-0;
        else fax:=mid_sal*0.45-13505;
    end if;
    return fax;
end;

测试
select empno,ename,sal,computeFaxFun(ename) fax from emp;

例子3:给员工编号,函数返回一行数据;
create or replace function findEmpInfoFun(
    eno emp.empno%type
)return emp%rowtype
is
    v_emp emp%rowtype;
begin
    select * into v_emp from emp where empno=eno;
    return v_emp;
end;

测试
sql语句中无法解析rowtype行对象,所以sql无法调用该函数
select findEmpInfoFun(empno) from emp;--报错

declare
    eno emp.empno%type:=7369;
    empinfo emp%rowtype;
begin
    empinfo:=findEmpInfoFun(eno);
    dbms_output.put_line(empinfo.empno||','||empinfo.ename||','||empinfo.sal);
end;

例子4:函数返回多行数据呢?

函数中,没有参数传入的时候,不能写小括号
create or replace function findallEmpFun return sys_refcursor
is
    allemp sys_refcursor;
begin
    open allemp for select * from emp;
    return allemp;
end;

测试
declare
    allemp sys_refcursor;
    empinfo emp%rowtype;
begin
    allemp:=findallEmpFun;
    loop
        fetch allemp into empinfo;
        if allemp%notfound then exit;end if;
        dbms_output.put_line(empinfo.empno||','||empinfo.ename||','||empinfo.sal);
    end loop;
    if allemp%isopen then close allemp; end if;
end;

过程与函数的区别:

1.关键字不一样,过程使用procedure,函数使用function

2.在过程中,所有的参数都放在小括号里面,通过in来表示传入的参数,通过out来表示返回的数据; 在函数中,小括号中放的都是传入的参数,也没有in/out的写法,返回的数据都通过return 来完成

3.在过程中,对于需要返回的结果,只需要存放到out修饰的参数里面就可以了 在函数中,过程语句执行完之后,必须通过return 返回执行结果

4.调用过程时,如果有返回数据,需要把变量放到过程的小括号中来接收结果; 调用函数的时候,则通过给变量赋值的方式来接收函数执行的结果

5.过程一般供程序调用,而函数一般由其他过程或者函数来调用

VBA中自定义函数 使用自定义函数可以使VBA代码更加模块化及可重复使用,同时提高代码的可读性和可维护性。 阅读详情

相关推荐

EXCEL自定义函数

在工作中有时会遇到在编写公式时,找不到适合的EXCEL内置函数,或者虽然可以使用内置函数,但会造成公式复杂不易理解,这时就可以考虑使用自定义函数了。 编写自定义函数需要一定的VBA基础,但完成后,就可以像使用内置函数一样方便了,任何人都可以使用。 工具/原料 excel 步骤/方法 下面通过一个例子来学习简单

37度2 2113

c语言函数详解1——自定义函数

自定义程序的讲解和一些规范

Solaku7的博客 2万+

Oracle自定义函数

文章目录一、函数的创建、调用和权限1、创建函数2、函数的调用3、函数的权限二、删除自定义函数三、应用经验四、版权声明 在Oracle数据库中,为了实现特定的功能,可以自定义函数,就像C/C++语言,除了系统的库函数,程序员还会编写很多自定义的函数。 一、函数的创建、调用和权限 1、创建函数 create or replace function 函数名(参数1 模式 数据类型,......) ret...

C语言实战技术 1429

mysql自定义函数

目录 一、概念 二、自定义函数语法 三、结构控制语法 四、虚拟表的创建 五、常用函数  六、自定义函数案例 一、概念 概念——自定义函数(user-defined function UDF)是对sql的扩展,其语法和函数相同 必备条件——参数:不一定要有;返回值:一定要有 包含——sql语句、声明、循环、结构控制等。 二、自定义函数语法      1、创建函数       ...

steven.yang 1万+

PPO算法详解:基于CartPole-v1的强化学习实现

PPO算法详解:基于CartPole-v1的强化学习实现

m0_54720701的博客 866

基于卷积神经网络的人脸表情识别(JAFFE篇)

1.win10/11操作系统2.python3.7以上3.tensorflow2.4以上版本(2.0其它版本需要微调)4.内存12G,显卡4G以上(没有独显倒是也能跑...)(这个可爱的妹子就是JAFFE数据集中的图片)

小林同学的计算机学习 5914

Spark自定义函数

简单形式 自定义函数直接使用下面的形式引用一个变量或者方法都可以 spark.udf.register[String,String]("avg_get",func =>func.toString.concat("内容")) 自定义聚合函数 定义一个类,实现抽象类方法,然后通过SparkContext注册函数,sql中直接调用 def main(args: Array[String]): Unit = { Logger.getLogger("org").setLevel(Le

qq_44342234的博客 1529

用Keil5给CH552G编程:手把手配置8051开发环境+LED闪烁实战

本文详细介绍了如何使用Keil5为CH552G单片机配置8051开发环境,并完成LED闪烁实战。从获取必要软件、安装WCH器件库到创建工程、编写程序及烧录,手把手指导开发者避开常见陷阱,特别适合从STC转向CH552G的开发者。

weixin_30733003的博客 539

pyspark 自定义函数

一:自定义函数的一般流程 # 1.创建普通的python函数 def to_upper(s): if s is not None: return s.upper() # 2.注册自定义函数 from pyspark.sql.functions import udf from pyspark.sql.types import StringType #...

a1272899331的博客 3160

Ubuntu登录界面黑屏?手把手教你排查和修复LightDM启动失败(附debug命令详解)

本文详细介绍了Ubuntu系统中LightDM(Light Display Manager)启动失败导致登录界面黑屏的排查与修复方法。通过系统状态检查、调试模式分析、常见故障解决方案及高级调试技巧,帮助用户快速定位并解决LightDM相关问题,恢复正常的图形登录环境。

weixin_34005090的博客 316

LTO编译器优化介绍以及开启方法

LTO优化的详细介绍

性感的小君君 4927

matlab 调用函数本身,怎么在matlab自定义函数中再调用一个自定义函数?

Matlab自定义函数的七种方法1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件。2、函数文件+子函数:定义一个具有多个自定义函数的M文件。3、Inline:无需M文件,直接定义。4、匿名函数。5、Syms+subs:无需M文件,直接定义。6、字符串+subs:无需M文件,直接定义。7、直接通过@符号定义www.mh456.com防采集。1、函数文件+调用函5261数文件:定义多个M文...

weixin_34640289的博客 5349

并行计算:从概念起源到多层次架构设计及其发展历程的全面解析

20世纪70年代,第一台并行计算机于1972年产生(ILLIAC IV,伊利诺依大学),由64个处理器组成,可扩展性好,但可编程性差。如有21亩地需要除草,一个人一天只能除一亩地的草,那么需要21天才能除完草,这在现实中是不太可能的,因庄稼是有时间段的。其二是机群系统是高性能计算机的一种,它的技术基础和工业基础都是商品化和标准化。之所以称为“专用”,并不是说它们只能运行某种应用,是指它们的组成部件是专门设计的,它们的CPU板、内存板和I/O板,甚至操作系统,都是不能在其它系统中使用的。

1656

impala自定义udf函数

查看内置的函数: show functions in _impala_builtins; show functions in _impala_builtins like ‘subs‘; 查看自定义函数: show functions 自定义函数: [hadoop06.xqtravel.com:21000] > create function statistics_client(s...

yangbosos的博客 2647

Android16 动态隐藏systemUI右侧音量条

本文介绍了如何屏蔽SystemUI系统音量条并显示自定义音量控制条的实现方法。主要通过两个步骤:1)在编译脚本中定义控制属性persist.rp.show.volume.dialog=off来隐藏系统音量条;2)修改SystemUI源码中的VolumeDialogImpl.java文件,在showH方法中根据属性值判断是否显示系统音量条。当属性值为off时直接return,从而屏蔽系统音量条的显示,实现自定义音量控制条的替代显示。该方法通过系统属性控制显示状态,具有灵活可控的特点。

tzj1058756809的博客 781

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

mysql 自定义函数

mysql 自定义函数,是对 mysql 扩展的途径,用法和内置函数相同 在工作中,使用 mysql 自带的函数不能满足需要,进而创建更贴近业务的自定义函数 1、创建自定义函数 自定义函数可以接收任意类型的参数,也可以返回任意类型的值 自定义函数基本语法格式如下 CREATE FUNCTION function_nameRETURNS type routine_body f...

悟世君子的博客 2163

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Hive自定义UDF函数

UDF全称:User-Defined Functions,即用户自定义函数,在Hive SQL编译成MapReduce任务时,执行java方法,类似于像MapReduce执行过程中加入一个插件,方便扩展。1.编写UDF函数,UDF需要继承org.apache.hadoop.hive.ql.exec.UDF,UDTF继承org.apache.hadoop.hive.ql.udf.generic.GenericUDTF,UDAF使用比较少,这里先不讲解;

weixin_43597208的博客 1093

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

自定义函数及函数调用

在论坛中,发现有的道友对自定义函数的调用存在这以下问题: 1、自定义函数声明、函数调用、函数实现概念混淆 2、形参和实参混淆; 3、自定义函数参数的传值方式混淆;传来传去都不知道传的到底是什么? 接下来,我就重点围绕道友们常见的问题,说一说: 1、自定义函数声明、函数调用、函数实现 比如:交换两个数的值的自定义函数swap 函数声明方式: void swap(int &a,int &amp...

袁君元的博客 9015

MYSQL自定义函数

转自:微点阅读https://www.weidianyuedu.com/content/0217396754715.html 在使用 MySQL 的过程中,MySQL 自带的函数可能完成不了我们的业务需求,这时候就需要自定义函数。 自定义函数是一种与存储过程十分相似的过程式数据库对象。它与存储过程一样,都是由 SQL 语句和过程式语句组成的代码片段,并且可以被应用程序和其他 SQL 语句调用。 自定义函数与存储过程之间存在几点区别: 1.自定义函数不能拥有输出参数,这是因为自定义函数自身就是..

ysds20211402的博客 3337

SQL——自定义函数

mysql——自定义函数 1.语法结构: CREATE FUNCTION fun_name RETURNS {STRING | INTERGE | REAL | DECIMAL} fun_body 举例:

代码小宝宝的博客 694

函数----自定义函数

前言 目前所学的方式去计算“s = ‘人生若只如初见’”的长度。 用len()函数计算 s = '人生若只如初见' print(len(s)) # 用len()函数计算,len()函数属于内置函数。返回结果为:7 用for有限循环语句计算 i = 0 for k in s: # 用for有限循环语句计算 i += 1 print(i) # 返回结果为:7 函数的自定...

Rosire的博客 8025

Oracle内置函数及自定义函数

Oracle内置函数及自定义函数简单使用

weixin_45102492的博客 948

oracle中自定义函数如何使用,oracle自定义函数语法及使用

1、自定义函数语法create [or replace]function 函数名 -- 定义一个名为xxx的函数(parameterName1, mode1 dataType1,parameterName2, mode2 dataType2,...)return返回值类型 ...

weixin_32459211的博客 5907

函数的使用之自定义函数

在上一篇文章我们了解了有关函数中的库函数,那么今天就让我们来了解函数的另外一种类型——自定义函数语法格式:(函数头)返回值类型 函数名(形参列表)(函数体)注:一切以功能为目的,有需求的需要来决定函数的参数与返回值的类型其实可以把函数看为一个“加工厂”,工厂从外部获得原材料(输入一些值,0,一个或是多个),经过工厂的加工(函数内代码块的运行),才能产出目标的产品。①返回值类型:为函数在执行后返回的结果值的类型(其实可以把函数看为一个表达式,函数的返回值就是这个表达式的结果值)

Lin050421的博客 4132
上一篇: 存储过程:单变量 到sys_refcursor
下一篇: 包 创建分两步:1.包的定义2.包的实现;视图;触发器
好好羊
博客等级 码龄5年 5粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好好羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值