第23章函数精选文档.ppt
《第23章函数精选文档.ppt》由会员分享,可在线阅读,更多相关《第23章函数精选文档.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第23章章函数函数本讲稿第一页,共四十六页第第2323章章 函数函数函数的创建;函数的创建;函数的调用;函数的调用;参数传递的方法;参数传递的方法;函数在函数在SQL语句中的应用;语句中的应用;函数的删除;函数的删除;存储过程与函数的比较。存储过程与函数的比较。本讲稿第二页,共四十六页23.1 23.1 创建函数创建函数在在PL/SQL中,函数用来返回特定的结果值。一个函数中,函数用来返回特定的结果值。一个函数包括函数说明和函数体两个部分。其中,函数体可以包括声包括函数说明和函数体两个部分。其中,函数体可以包括声明部分、可执行部分和异常处理部分。本节就来介绍函数创明部分、可执行部分和异常处理
2、部分。本节就来介绍函数创建的语法规则以及如何创建无参数和有参数的函数。建的语法规则以及如何创建无参数和有参数的函数。本讲稿第三页,共四十六页23.1.1 23.1.1 创建函数的语法规则创建函数的语法规则使用使用CREATE OR REPLACE FUNCTION关键字可关键字可以创建一个函数。以关键字以创建一个函数。以关键字FUNCTION开头的是说明部分;开头的是说明部分;以关键字以关键字IS或者或者AS开头,以关键字开头,以关键字END结尾的是函数体部分。结尾的是函数体部分。其创建存储函数的语法规则如下:其创建存储函数的语法规则如下:本讲稿第四页,共四十六页23.1.1 23.1.1 创
3、建函数的语法规则创建函数的语法规则CREATE OR REPLACE FUNCTION function_name(argument1model datatype1,argument2model datatype2.)RETURN return_datatypeIS|ASlocal declarationsBEGIN executable statementsEXCEPTION exception handlersEND function_name;本讲稿第五页,共四十六页23.1.1 23.1.1 创建函数的语法规则创建函数的语法规则例例23.1创建一个用来显示当前系统日期和时间的函数创建一
4、个用来显示当前系统日期和时间的函数CREATEORREPLACEFUNCTIONsysdata_timeRETURNVARCHAR2ASBEGINRETURNTO_CHAR(SYSDATE,YYYY-MM-DDHH24:MI:SS);ENDsysdata_time;本讲稿第六页,共四十六页23.1.2 23.1.2 函数体中的函数体中的RETURNRETURN子句子句在上一节中,介绍了创建函数的语法规则。可以看到,在上一节中,介绍了创建函数的语法规则。可以看到,在函数的创建中需要使用一个在函数的创建中需要使用一个RETURN子句,其余的语法规子句,其余的语法规则与创建函数的语法规则是非常相似。
5、正如在则与创建函数的语法规则是非常相似。正如在23.1.1小节中小节中最后在注意中提到的,除了在函数声明中需要使用最后在注意中提到的,除了在函数声明中需要使用RETURN子句用来指定函数返回的数据类型之外,在函数体内还需要子句用来指定函数返回的数据类型之外,在函数体内还需要使用一个使用一个RETURN子句返回一个特定的数据值,在函数体内子句返回一个特定的数据值,在函数体内RETURN子句的语法规则如下:子句的语法规则如下:RETURN exception;本讲稿第七页,共四十六页23.1.2 23.1.2 函数体中的函数体中的RETURNRETURN子句子句其中,其中,exception是一个
6、表达式,用来表示函数要返回的是一个表达式,用来表示函数要返回的数据值。当程序执行到函数体内的数据值。当程序执行到函数体内的RETURN语句子句后,程语句子句后,程序会将其控制权立即返回给调用环境。执行函数调用之后的序会将其控制权立即返回给调用环境。执行函数调用之后的语句。如果语句。如果exception返回的数据值的数据类型与函数声明中返回的数据值的数据类型与函数声明中的的RETURN子句指定的返回值的数据类型不相符,则子句指定的返回值的数据类型不相符,则PL/SQL会将其转换为会将其转换为RETURN子句指定的返回值的数据类子句指定的返回值的数据类型。型。本讲稿第八页,共四十六页23.1.3
7、 23.1.3 创建有输入参数的函数创建有输入参数的函数如果在创建函数时,其参数模式的默认值为如果在创建函数时,其参数模式的默认值为IN模式。如模式。如果该函数中的参数模式为果该函数中的参数模式为IN模式,那么调用该函数时,实际模式,那么调用该函数时,实际参数的值将传递给被调用的函数。在该函数中,被指定为参数的值将传递给被调用的函数。在该函数中,被指定为IN模式的参数的作用相当于一个常量,其值只能被读取,不能模式的参数的作用相当于一个常量,其值只能被读取,不能为其进行赋值操作。为其进行赋值操作。本讲稿第九页,共四十六页23.1.3 23.1.3 创建有输入参数的函数创建有输入参数的函数例例23
8、.2创建有输入参数的函数,返回学生的课程成绩。创建有输入参数的函数,返回学生的课程成绩。CREATEORREPLACEFUNCTIONget_result(p_stuIDINt_t_result.stuID%TYPE,p_curIDINt_result.curID%TYPE)RETURNINTEGERASv_resultINT;-学生成绩学生成绩BEGIN/*查询指定学生编号和课程编号的学生成绩查询指定学生编号和课程编号的学生成绩*/SELECTresultINTOv_resultFROMt_resultWHEREstuID=p_stuIDANDcurID=p_curID;/*当查询到的学生成
9、绩大于当查询到的学生成绩大于100或者小于或者小于0时,返回错误信息时,返回错误信息*/IFv_result100ORv_result将实参和形参关联起来。将实参和形参关联起来。本讲稿第三十三页,共四十六页23.3.2 23.3.2 使用参照位置传递参数值使用参照位置传递参数值DECLAREv_stuIDVARCHAR2(15):=s281234;v_curIDVARCHAR2(15):=t321;v_resultNUMBER;BEGINv_result:=get_result(p_stuID=v_stuID,p_curID=v_curID);END;。本讲稿第三十四页,共四十六页23.3.3
10、 23.3.3 使用参数名称和位置传递参数值使用参数名称和位置传递参数值在在PL/SQL中,也可以混合使用参数名称和参数位置来中,也可以混合使用参数名称和参数位置来传递参数变量或者数据。在混合使用参数名称和参数位置来传递参数变量或者数据。在混合使用参数名称和参数位置来传递参数变量或者数据时,参数位置传递参数值的方法需要传递参数变量或者数据时,参数位置传递参数值的方法需要在参数名称传递参数值的方法之前使用。在参数名称传递参数值的方法之前使用。本讲稿第三十五页,共四十六页23.3.3 23.3.3 使用参数名称和位置传递参数值使用参数名称和位置传递参数值DECLAREv_stuIDVARCHAR2
11、(15):=s281234;v_curIDVARCHAR2(15):=t321;v_resultNUMBER;BEGINv_result:=get_result(p_stuID=v_stuID,p_curID=v_curID);END;本讲稿第三十六页,共四十六页23.4 23.4 函数在函数在SQLSQL中的应用中的应用一般情况下,子程序(包括存储过程和函数)是不能在一般情况下,子程序(包括存储过程和函数)是不能在SQL语句中被调用的,但是如果一个函数满足某些条件的限语句中被调用的,但是如果一个函数满足某些条件的限制,那么该函数是可以在制,那么该函数是可以在SQL语句中被调用的。这一节就来语
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第23章 函数精选文档 23 函数 精选 文档
限制150内