函数与存储过程省公共课一等奖全国赛课获奖课件.pptx
《函数与存储过程省公共课一等奖全国赛课获奖课件.pptx》由会员分享,可在线阅读,更多相关《函数与存储过程省公共课一等奖全国赛课获奖课件.pptx(25页珍藏版)》请在咨信网上搜索。
第第8 8章章 函数与存放过程函数与存放过程Oracle数据库中不但能够使用单条语句对数据库进行数据库中不但能够使用单条语句对数据库进行增、删、改、查操作,而且能够多条语句组成一个语句块,增、删、改、查操作,而且能够多条语句组成一个语句块,并一起执行。这些语句块能够进行显式命名,并被其它应用并一起执行。这些语句块能够进行显式命名,并被其它应用调用。这些命名语句块被称为函数与存放过程。本章将重点调用。这些命名语句块被称为函数与存放过程。本章将重点介绍函数与存放过程使用。介绍函数与存放过程使用。lOracle中自定义函数;中自定义函数;lOracle中存放过程;中存放过程;l包装函数与存放存放过程包装函数与存放存放过程程序包。程序包。第1页8.1 8.1 函数函数函数是函数是Oracle数据库中惯用对象之一,与其它编程语数据库中惯用对象之一,与其它编程语言函数一样,言函数一样,Oracle中函数也必须返回一个值。这也是函数中函数也必须返回一个值。这也是函数区分于存放过程主要特征。区分于存放过程主要特征。第2页8.1.1 8.1.1 函数介绍函数介绍1函数与功效划分函数与功效划分2函数参数函数参数3函数返回值函数返回值第3页8.1.2 8.1.2 创建函数创建函数1创建函数创建函数create or replace function get_hello_msgreturn varchar2 as begin return hello world;end get_hello_msg;2在数据字典中查看函数信息在数据字典中查看函数信息select object_name,object_type,status from user_objects where lower(object_name)=get_hello_msg3查看函数返回值查看函数返回值 set serverout on;declare msg varchar2(20);begin msg:=get_hello_msg;dbms_output.put_line(msg);end;第4页8.1.3 8.1.3 函数中括号函数中括号其它标准编程语言中,函数括号都是必需,不过函数其它标准编程语言中,函数括号都是必需,不过函数get_hello_msg并没有使用小括号。当函数需要传入参数时,并没有使用小括号。当函数需要传入参数时,参数列表必须使用小括号括起来,不过当函数没有参数时,参数列表必须使用小括号括起来,不过当函数没有参数时,小括号能够省略。当函数没有小括号时,在形式上和变量相小括号能够省略。当函数没有小括号时,在形式上和变量相同,那么有可能会产生变量冲突。同,那么有可能会产生变量冲突。第5页8.1.4 8.1.4 函数参数函数参数在在8.1.2节中创建函数节中创建函数get_hello_msg是无参数函数,本节将演示是无参数函数,本节将演示带参数函数创建和使用。带参数函数创建和使用。create or replace function get_tax(p_salary number)return number as begin declare tax_salary number;begin tax_salary:=p_salary-;if tax_salary柳青柳青,in_age=19);end;第15页8.2.7 8.2.7 存放过程参数存放过程参数参数默认值参数默认值有时,存放过程参数有很多个。对于用户来说,部分参有时,存放过程参数有很多个。对于用户来说,部分参数并非必需,那么,在定义存放过程时应该为可选参数设定数并非必需,那么,在定义存放过程时应该为可选参数设定默认值,以允许用户不为该参数传值。需要注意是,默认值默认值,以允许用户不为该参数传值。需要注意是,默认值是仅对是仅对IN参数而言,参数而言,OUT和和IN OUT参数没有默认值。范例参数没有默认值。范例8-17演示了怎样使用演示了怎样使用IN参数默认值。参数默认值。create or replace procedure insert_student(in_student_id in number,in_student_name in varchar2,in_student_age in number default 20)as begin insert into students values(in_student_id,in_student_name,in_student_age);commit;end insert_student;begin insert_student(11,王蒙王蒙);end;第16页8.2.8 8.2.8 存放过程参数存放过程参数参数次序总结参数次序总结在讲解了三种参数使用方法之后,能够对参数次序总结在讲解了三种参数使用方法之后,能够对参数次序总结以下:以下:含有默认值参数应该置于参数列表末尾,因为有时用户含有默认值参数应该置于参数列表末尾,因为有时用户需要省略该参数;没有默认值参数能够遵照需要省略该参数;没有默认值参数能够遵照“IN参数参数”“OUT参数参数”“IN OUT参数参数”。第17页8.3 8.3 程序包程序包程序包能够将若干个函数或者存放过程组织起来,作为程序包能够将若干个函数或者存放过程组织起来,作为一个对象进行存放。程序包通常由两部分组成:规范一个对象进行存放。程序包通常由两部分组成:规范(specification)和主体()和主体(body)。程序包也能够包含常)。程序包也能够包含常量和变量,包中全部函数和存放过程都能够使用这些变量和量和变量,包中全部函数和存放过程都能够使用这些变量和常量。常量。第18页8.3.1 8.3.1 规范规范1创建程序包规范创建程序包规范create or replace package pkg_students as studentString varchar2(500);studentAge number:=18;function get_student_string return varchar2;procedure update_student(in_student_id in number);procedure insert_student(in_student_id in number,in_student_name in varchar2,in_student_age in varchar2);procedure delete_student(in_student_id in number);end pkg_students;2在数据字典中查看程序包规范信息在数据字典中查看程序包规范信息select object_name,object_type,status from user_objects where lower(OBJECT_NAME)=pkg_students第19页8.3.2 8.3.2 主体主体1创建程序包主体创建程序包主体create or replace package body pkg_students asend pkg_students;范例:范例:create or replace package body pkg_students as function get_student_string return varchar2 is begin return students;end get_student_string;end pkg_students;2在数据字典中查看该程序包主体信息在数据字典中查看该程序包主体信息select object_name,object_type,status from user_objects where lower(OBJECT_NAME)=pkg_students 第20页8.3.3 8.3.3 调用程序包中函数调用程序包中函数/存放过程存放过程对于程序包中函数,能够直接在对于程序包中函数,能够直接在select语句进行调用。语句进行调用。调用格式为调用格式为package_name.function_name()。以调用程序。以调用程序包包pkg_students中函数中函数get_student_string()为例,对应代为例,对应代码以下所表示。码以下所表示。select pkg_students.get_student_string()from dual第21页8.3.4 8.3.4 程序包中变量程序包中变量程序包中变量普通申明在规范中,而且能够被主体中全程序包中变量普通申明在规范中,而且能够被主体中全部函数部函数/存放过程共享。存放过程共享。第22页8.4 8.4 本章实例本章实例存放过程应用非常广泛,能够用来处理非常复杂问题。存放过程应用非常广泛,能够用来处理非常复杂问题。其中比较惯用一个应用为循环处理。有时,将一条语句能够其中比较惯用一个应用为循环处理。有时,将一条语句能够处理问题,使用存放过程来处理,反而是一个更加好策略。处理问题,使用存放过程来处理,反而是一个更加好策略。第23页8.5 8.5 本章小结本章小结本章主要讲述了数据库中两个主要对象,函数与存放过本章主要讲述了数据库中两个主要对象,函数与存放过程。二者是程。二者是Oracle与其它编程语言非常相近地方。函数和存与其它编程语言非常相近地方。函数和存放过程本质是复杂放过程本质是复杂SQL语句组合,在语句组合,在Oracle编程中起了至关编程中起了至关主要作用。用户编写代码能够储存并重用,这使得主要作用。用户编写代码能够储存并重用,这使得Oracle编编程含有编程语言基本特点。另外,程含有编程语言基本特点。另外,Oracle提供了许多安全机提供了许多安全机制便于控制函数和存放过程访问权限,也使得函数和存放过制便于控制函数和存放过程访问权限,也使得函数和存放过程含有了愈加灵活应用。程序包和主体概念,则表达了程含有了愈加灵活应用。程序包和主体概念,则表达了Oracle编程照样能够含有面向接口编程特点,使得编程照样能够含有面向接口编程特点,使得Oracle编编程愈加规范、可靠。程愈加规范、可靠。第24页8.6 8.6 习题习题1什么是函数什么是函数函数确实定性函数确实定性?2简述存放过程三种参数特点。简述存放过程三种参数特点。3程序包由哪两部分组成,二者关系怎样?程序包由哪两部分组成,二者关系怎样?4函数和存放过程最大区分是什么?函数和存放过程最大区分是什么?第25页- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 函数 存储 过程 公共课 一等奖 全国 获奖 课件
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文