oracle讲解_存储过程的调用

oracle讲解_存储过程的调用

ID:42550585

大小:17.97 KB

页数:5页

时间:2019-09-17

oracle讲解_存储过程的调用_第1页
oracle讲解_存储过程的调用_第2页
oracle讲解_存储过程的调用_第3页
oracle讲解_存储过程的调用_第4页
oracle讲解_存储过程的调用_第5页
资源描述:

《oracle讲解_存储过程的调用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一.存储过程(PROCEDURE)使用过程,不仅可以简化客户端应用程序的开发和维护,而且可以提高应用程序的运行性能.CREATE[ORREPLACE]PROCUDUREprocedure_name(arg1[model1]datatype1,arg2[model2]datatype2)IS[AS]PL/SQLBlock;arg1,arg2用于指定过程的参数,IS/AS用于开始一个PL/SQL块.当指定参数数据类型时,不能指定其长度.在建立过程的时间,既可以指定输入参数(IN),也可以指定输出参数(OUT)以及输入输出参数(INOUT).

2、如果不定义参数模式,则默认为输入参数,如果要定义输出参数,则需要指定OUT关键字,如果定义输入输出参数,要指定INOUT关键字.一般使用execute(或exec)过程名或者call过程名来调用过程.setserveroutputon打开oracle的输出.(1)不带参数的过程CREATEORREPLACEPROCEDUREout_timeISBEGINdbms_output.put_line(systimestamp);END;callout_time();或者execout_time;(2)带IN参数的过程如果不指定参数模式,则默认

3、的为IN,也可以显示的指定输入模式IN.CREATEORREPLACEPROCEDUREadd_employee(enoNUMBER,nameVARCHAR2,salNUMBER,jobVARCHAR2DEFAULT'CCC',dnoNUMBER)ISBEGININSERTINTOemp(empno,ename,sal,job,deptno)VALUES(eno,ename,sal,job,dno);EXCEPTIONWHENDUP_VAL_ON_INDEXTHENRAISE_APPLICATION_ERROR(-20000,'雇员不能

4、重复');END;除了默认值的参数外,其余的都要输入.(3)带OUT的过程在过程中输出结果是使用OUT或者INOUT来完成的.定义输出参数的时间,必须要使用OUT来定义输出.CREATEORREPLACEPROCEDUREquery_employee(enoNUMBER,nameOUTVARCHAR2,salOUTNUMBER)ISBEGINSELECTename,salINTOname,salFROMempWHEREempno=eno;EXCEPTIONWHENNO_DATA_FOUNDTHENRAISE_APPLICATION_ER

5、ROR(-20000,'雇员不存在');END;对于指定为OUT类型的参数,必须定义变量接收输出参数的数据.调用实例:SQL>varnameVARCHAR2(10)SQL>varsalNUMBERSQL>execquery_employee(77,:name,:sal)SQL>printnamesal(4)带IN和OUT的过程在调用前要通过变量给参数传递数据,在调用结束后,会通过此变量将值传递给应用程序CREATEORPROCEDUREcompute(numINOUTNUMBER,num2INOUTNUMBER)ISv1NUMBER;v

6、2NUMBER;BEGINv1:=num1/num2;v2:=MOD(num1,num2);num1:=v1;num2:=v2;END;在应用程序调用INOUT的存储过程时,必须提供两个变量临时存放数值,运行如下:SQL>varn1NUMBERSQL>varn2NUMBERSQL>exec:n1:=100SQL>exec:n2:=30SQL>execcompute(:n1,:n2)SQL>PRINTn1n2(5)为参数传递变量和数据[1]位置传递如SQL>execadd_dept(50,'SALES','NEWYORK')[2]名称传递

7、,使用=>符号来指定值如SQL>execadd_dept(dno=>50)[3]组合传递,以上两种传递方法交替(6)查看过程的源代码过程名,源代码,执行代码放到了数据字典中,通过查询数据字典USER_SOURCE,可以显示当前用户定义的过程SELECTtextFROMuser_sourceWHEREname='ADD_DEPT';(7)删除过程DROPPROCEDURE过程名二.函数(FUNCTION)CREATE[ORREPLACE]FUNCTIONfunction_name(arg1[model1]datatype1,arg2[mo

8、del2]datatype2)RETURNdatatypeIS

9、ASPL/SQLBlock;arg1,arg2指定函数的参数,当不指定参数数据类型时,不能指定其长度RETURN指定函数返回的数据类型.注意,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。