函数存储过程触发器_第1页
函数存储过程触发器_第2页
函数存储过程触发器_第3页
函数存储过程触发器_第4页
函数存储过程触发器_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

函数存储过程触发器第一页,共二十页,编辑于2023年,星期日无参数函数的使用createorreplacefunctionfun_zmxreturnvarchar2isspmc_namevarchar2(50);beginselectspmcintospmc_namefromcgmxbwhererownum=1;returnspmc_name;end;说明:intospmc_name表示把获取的数据给定义的参数第二页,共二十页,编辑于2023年,星期日有参数函数的使用createorreplacefunctionfun_zmx(paramnumber)returnvarchar2isname_spvarchar2(20);beginselectspmcintoname_spfromcgmxbwheremxid=param;returnname_sp;end;第三页,共二十页,编辑于2023年,星期日按当前字段类型返回函数createorreplacefunctionfun_zmx(paramuser1.cgmxb.cj%type)returnuser1.cgmxb.mxid%typeisname_spuser1.cgmxb.mxid%type;beginselectavg(mxid)intoname_spfromcgmxbwherecj=param;returnname_sp;end;说明:user1.cgmxb.cj%type表示当前用户的表中字段的类型第四页,共二十页,编辑于2023年,星期日常用的系统函数字符串连接函数concatselectmxid,concat(spmc,cj)fromcgmxb等价于selectmxid,spmc||cjfromcgmxb字符串截取函数substrselectmxid,substr(spmc,1,1)fromcgmxb第五页,共二十页,编辑于2023年,星期日常用的系统函数大小写转换函数upper、lower大写selectmxid,upper(spmc)fromcgmxb小写selectmxid,lower(upper(spmc))fromcgmxb第六页,共二十页,编辑于2023年,星期日常用的系统函数获取系统日期sysdateselectsysdatefromdual日期格式转换selectto_date('20010202','yyyy-mm-dd')fromdualto_date函数需要日期字符串转换函数selectto_char(sysdate,'yyyy-MM-dd')fromdual第七页,共二十页,编辑于2023年,星期日常用的系统函数绝对值函数:absselectabs(-2.36)fromdual向上取值ceilselectceil(2.36)fromdual向下取值floorselectfloor(2.36)fromdual取模modselectmod(8,3)fromdual第八页,共二十页,编辑于2023年,星期日常用的系统函数次访换算powerselectpower(2,3)fromdual表示2的3次方四舍五入换算roundselectround(3.1415926,3)fromdual3表示精度(保留小数的位数)第九页,共二十页,编辑于2023年,星期日分页方法比较SELECT*FROM(SELECTA.*,ROWNUMRNFROM(SELECT*FROMTABLE_NAME)AWHEREROWNUM<=40)WHERERN>=21/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////SELECT*FROM(SELECTA.*,ROWNUMRNFROM(SELECT*FROMTABLE_NAME)A)WHERERNBETWEEN21AND40第一种效率高于第二种第十页,共二十页,编辑于2023年,星期日存储过程存储过程具有如下特点:1)存储过程是预编译过的,并且经优化后存储于SQL内存中,使用时无需再次编译,提高了工作效率;2)存储过程的代码直接存放于数据库中,一般由客户端直接通过存储过程的名字进行调用,减少了网络流量,加快了系统执行速度,例如在进行百万以上的大批量数据查询时,使用存储过程分页要比其他方式分页快得多;3)使用存储过程可以减少SQL注入式攻击,提高了系统的安全性,执行存储过程的用户要具有一定的权限才能使用存储过程,没有数据操作权限的用户只能在其控制下间接地存取数据;第十一页,共二十页,编辑于2023年,星期日存储过程)在同时进行主、从表及多表间的数据维护及有效性验证时,使用存储过程比较方便,而且可以有效利用SQL中的事务处理的机制;5)使用存储过程,可以实现存储过程设计和编码工作分开进行,只要将存储过程名、参数、及返回信息告诉编码人员即可;6)但使用存储过程封装业务逻辑将限制应用程序的可移植性;另外,如果更改存储过程的参数或者其返回的数据及类型的话,需要修改应用程序的相关代码,比较繁琐。第十二页,共二十页,编辑于2023年,星期日存储过程存储过程的定义:CREATE[ORREPLACE]PROCEDUREprocedure_name

[(parameter1[model]datatype1,parameter2[model]datatype2...)]

IS[AS]

BEGIN

PL/SQLBlock;

END[procedure_name];其中:procedure_name是存储过程的名字,parameter用于指定参数,model用于指定参数模式,datatype用于指定参数类型,IS[AS]用于开始PL/SQL代码块。注:当定义存储过程的参数时,只能指定数据类型,不能指定数据长度第十三页,共二十页,编辑于2023年,星期日存储过程1)建立存储过程时,既可以指定存储过程的参数,也可以不提供任何参数。2)存储过程的参数主要有三种类型:输入参数(IN)、输出参数(OUT)、输入输出参数(INOUT),其中IN用于接收调用环境的输入参数,OUT用于将输出数据传递到调用环境,INOUT不仅要接收数据,而且要输出数据到调用环境。3)在建立存储过程时,输入参数的IN可以省略。第十四页,共二十页,编辑于2023年,星期日存储过程-无输入参数createorreplaceprocedurepro_zmx(paramoutuser1.cgmxb.mxid%type)asbeginselectavg(mxid)intoparamfromcgmxbwherecj='北京';end;第十五页,共二十页,编辑于2023年,星期日存储过程-输入输出参数createorreplaceprocedurepro_zmx(param1inuser1.cgmxb.cj%type,paramoutuser1.cgmxb.mxid%type)asbeginselectavg(mxid)intoparamfromcgmxbwherecj=param1;end;第十六页,共二十页,编辑于2023年,星期日存储过程inout参数createorreplaceprocedurepro_zmx(paraminoutuser1.cgmxb.mxid%type)asbeginselectavg(mxid)intoparamfromcgmxbwheremxid=param;end;第十七页,共二十页,编辑于2023年,星期日触发器当需要级联操作的时候可能用到触发器语法:createorreplacetrigger触发器名称before|afterinsertorupdateordelete[of字段名称]on表beginPL/SQL语句end第十八页,共二十页,编辑于2023年,星期日触发器表触发器行触发器表createorreplacetriggertri_zmxafterinsertoncgmxbbegininsertintocgb(cid,zdr)values(1,2);end;insertintocgmxb(mxid,spmc,cj

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论