对于Oracle数据库中存储过程开发研究 下载本文

龙源期刊网 http://www.qikan.com.cn

对于Oracle数据库中存储过程开发研究

作者:柴新

来源:《中国科技博览》2015年第33期

[摘 要]随着时代的发展,信息技术得到了极大进步,数据库在信息系统中具有重要地位,数据库中的存储过程,主要是把执行计划放在数据库服务器中进行存储。Oracle能够把存储过程作为数据库的对象来存储到数据库中,不但能够使用SQL语言来实现,也能够用JAVA语言来实现存储过程,具有很多的优点,应该对此进行重视,并对此进行开发。因此,本文就是主要对于Oracle数据库中的存储过程进行了仔细的分析与研究。 [关键词]Oracle数据库;开发;存储过程;创建;调用;

中图分类号:TP311.13 文献标识码:A 文章编号:1009-914X(2015)33-0256-01 【正文】 1 存储过程 1.1 存储过程概念

所谓存储过程,实质上就是数据库中的一个对象,也就是SQL语言的一个集合。在代码被编译好并执行后,每执行一次就会将其高速缓冲保存到Oracle数据库中,这样在下次使用的时候就不需要再次进行编译,而是可以直接调用,这能够极大地提升数据库中查询、存储的效率,从而使得整个系统的性能都得到提升。除此之外,存储过程也是封装重复操作的一种手段,因此它还具有很强的编译能力、以及提供参数的变量能力。 1.2 存储过程分类

Oracle数据库的存储过程,一般情况下可以分为这四种:触发器、存储函数、存储过程、对象类型。其中触发器是基于数据表而创建的,它的执行需要在设定好一定的条件基础上而实现的。存储函数和存储过程在实现的过程上是相似的,二者都可以使用名称来进行调用。然而存储函数是能够向调用者返回值的,而存储过程不可以,但顶级的存储过程可以给客户提供不同的指令。而对象类型中,能够对变量操作的状态进行维护,以及对存储信息的一些有关的操作进行定义。 1.3 存储过程优点

存储过程有着很大的优势,首先它具有极高的执行效率。随着用户访问量的不断增加,SQL请求量也会随之增加,数据在网络上的传输量会越来越大,这样给网络造成的负荷过大,已成为了一个问题。而使用存储过程刚好可以解决这个问题,这是由于通过对存储过程的调

龙源期刊网 http://www.qikan.com.cn

用,也就是调用了服务器中正在执行的SQL语言,从而极大地减轻了网络的负荷。其次,存储过程具有可重用性的特点,只需要进行一次编写,就能够在各个地方进行应用。而且,存储过程还有可移植性的特点,能够在任何的Oracle数据库中使用却不需要考虑平台的问题,因此只要平台是支持Oracle的,就可以直接对存储过程进行调用。而且,存储过程还具有可维护性的特点。一个存储过程可以用于完成一个指定的任务,一旦任务的逻辑变化,那么只需要更改存储过程就可以继续使用,却不需要对客户端代码进行修改,这极大地降低了对于软件进行维护的成本。最后,存储过程还具有高安全性的特点,不仅能够实现应用逻辑,而且可以防止客户端的应用对Oracle数据库中的一些数据进行不当的操作。 2 存储过程创建 2.1 PL/SQL语言

传统情况下,Oracle数据库的开发人员一直都采用PL/SQL语言来创建存储过程。PL/SQL是数据库的程序设计语言中的一种高级语言,主要用于在不同的环境下访问Oracle数据库。PL/SQL语言是对SQL语言的一种扩展,通过在SQL语言中引用特殊的其他语言的过程性的特征,来使得过程性的特征和SQL有着更好的结合,从而确保Oracle数据库中的PL/SQL功能更加的强大。它不但具有结构化程序设计的语言特征,而且还具有SQL语言的数据查询和处理功能。它直接在数据库的服务器端集成,能够以很高的性能实现很复杂的逻辑程序以及运算。这种语言吸收了很多的编程语言的设计特点,如数据封装性、以及重载等功能,因此更加完善,是一种具有很强大的功能的事务处理语言。 2.2 Java语言

Oracle中的JVM是一个在Oracle数据库中的Java虚拟机,允许在数据库中执行Java程序,而这些程序就是Java存储过程。存储在数据库中的Java程序可以直接进行运行,并且通过内置的JDBC驱动器来对SQL函数以及PL/SQL函数进行调用。JAVA存储过程使用的是Oracle服务器内部的驱动程序,只有通过这种方式才能够把JAVA创建成Oracle数据库中的存储对象。创建JAVA的存储过程需要这样几个步骤:首先,需要创建并且编辑JAVA类,即编写JAVA的源代码。然后,需要将JAVA的源代码及类进行装载,装载到Oracle数据库中。在这里需要注意的是,可以使用两步处理法,即使用JAVAC来编译JAVA的源程序,生成JAVA的字节码程序。然后,使用Oracleloadjava来将程序进行编译,也可以只使用Oracleloadjava直接对程序进行编译。编译之后,将JAVA类文件放到数据库的实例之中这样存储过程就此生成。 3 存储过程创建实例 3.1 复杂业务逻辑封装

龙源期刊网 http://www.qikan.com.cn

通过PL/SQL的存储过程,就能够实现学校教务系统中的学生选课逻辑指令,并且还能够对学生的选课数量进行判断。一旦学生选课的数量超出了规定,那么就不能够继续进行选课。首先判断学生选课是否成功,然后对学生的选课数量进行判断。如果同时有很多的学生进行选课,就会可能使得网络的负荷过大而出现网络阻塞、不能正常运行的状况出现,然而现在使用PL/SQL能够很好使这个问题得到解决,因为数据集中在数据库服务器端进行处理而不需要过多的网络传输,这就能保证网络的负荷比较低,所以学生的选课能够顺利进行。 3.2 动态多表关联查询

在开发应用程序时,如果不能直接通过处理数据表来得到相关的数据,就需要在此基础上建立一些其他的过渡临时表解决这个问题。在实际应用过程中,可以通过包、或者包体来对学校教务系统的学生名单进行针对性的查询。学生的名单内容很多,会涉及到很多的表格,并且还有一些传递性参数,因此可以使用动态多表的关联查询功能实现对于学生名单的动态查询,最后返回到记录集。 4 结束语

总之,数据库在应用系统之中,是很重要的一个开发类平台,只有充分对Oracle数据库中的存储过程进行应用,才能够使得系统的执行效率更加的高效,显著提高信息系统的性能,改善用户体验。因此,该文在这样的背景下,对Oracle数据库中的存储过程的开发进行研究,希望能够起到一些参考价值,给实际的开发带来帮助。 参考文献

[1] 顾云锋,杨素霞,王智钢,翟萍.Oracle数据库中存储过程开发研究[J].计算机与现代化,2011,10:138-142.

[2] 丛大众.oracle数据库中存储过程开发研究[J].电子制作,2015,01:70-71. [3] 周岚.Oracle中基于Java的存储过程[D].安徽大学,2006.

[4] 白蓥.针对Oracle数据库的SQL注入攻击的研究[D].吉林大学,2011.

[5] 赵力涵.Oracle数据库解密技术及权限提升漏洞的挖掘研究[D].上海交通大学,2012.