欢迎来到天天文库
浏览记录
ID:34725033
大小:86.68 KB
页数:4页
时间:2019-03-10
《oracle存储过程和函数》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Oracle存储过程和函数一、存储过程过程:将一些内部联系的命令组成一个个过程,通过参数在过程之间传递数据。存储过程的特点:1、存储过程里的代码都已经被编译过。可以直接执行。使用时无需编译,提高工作效率2、客户端通过调用存储过程,可以减少网络流量,加快了系统执行速度。3、可以减少SQL注入,提高系统的安全性。4、在同时进行主、从表及多表间的数据维护及有效性验证时,使用存储过程比较方便,而且可以有效利用SQL中的事务处理的机制;5、使用存储过程,可以实现存储过程设计和编码工作分开进行存储过程包含1、声明部分:在声明部分可以对不同数据类型的数据进行
2、声明,包括类型、游标、常量、变量、异常等。2、执行部分:主要是为了完成或者达到一个特定的目的或功能3、异常处理部分:在执行过程中,对于引发错误的操作,进行异常提示。Oracle中创建存储过程的语法:Createorreplaceprocedure存储过程名(参数1intype,参数2outtype)As声明语句Begin执行语句Exception异常处理语句End;注意:1、存储过程参数不带取值范围,in表示传入,out表示输出2、as后的语句声明变量,并且变量有取值范围,后面加上分号3、begin关键字表示PL/SQL的开始4、excepti
3、on关键字用来处理异常,异常信息常用raise+异常名的方式5、end关键字表示存储过程的结束预定义异常的简单描述异常类型异常描述错误及错误代码ACCESS_INTO_NULL未定义对象错误:ORA-06530代码:-6530CASE_NOT_FOUNDCase语句中没有when子句被选择,并且没有Else子句错误:ORA-06592代码:-6592INVALID_NUMBER非有效数字字符串装换成数字错误:ORA-01722代码:-1722LOGGIN_DENIED使用无效的用户名和口令登陆oracle错误:ORA-011017代码:-101
4、7错误:ORA-01403NO_DATA_FOUND查询语句无返回数据,或者引用了一个删除的元素,或者引用了一个没有被初始化的元素代码:+100TIMEOUT_ON_RESOURCE等待资源发生超时错误:ORA-00051代码:-51无参存储过程createorreplaceproceduretest_procasunamevarchar(20);beginselectnameintounamefromtestwhereid=23;dbms_output.put_line(uname);end;带输入参数存储过程createorreplacep
5、roceduretest_proc(uidinnumber)asunamevarchar(20);beginselectnameintounamefromtestwhereid=uid;dbms_output.put_line(uname);exceptionwhenNO_DATA_FOUNDthenRAISE_APPLICATION_ERROR(-20011,'ERROR:不存在!');end;带输出参数存储过程createorreplaceproceduretest_proc(numoutnumber)asbeginselectcount(
6、*)intonumfromtestwhereid=25;dbms_output.put_line(num);exceptionwhenNO_DATA_FOUNDthenRAISE_APPLICATION_ERROR(-20011,'ERROR:不存在!');end;带输出和输出参数存储过程createorreplaceproceduretest_proc(uidinnumber,numoutnumber)asunamevarchar(20);beginselectnameintounamefromtestwhereid=uid;selectco
7、unt(*)intonumfromtestwhereid=25;dbms_output.put_line(uname);dbms_output.put_line(num);exceptionwhenNO_DATA_FOUNDthenRAISE_APPLICATION_ERROR(-20011,'ERROR:不存在!');end;存储过程的调用通过Call存储过程名称(参数);Begin存储过程名称(参数);End;二、函数Oracle中的函数与存储过程类似,也是将一组能够实现特定功能的SQL或者PL/SQL语句块组合在一起的程序集,并且能够将执
8、行结果返回。函数组成也同存储过程一样包含声明部分执行部分异常处理部分三个部分函数与存储过程区别1、标示符不同函数:function存储过程:proce
此文档下载收益归作者所有