- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大作业的格式11
成绩:
Oracle数据库系统应用
大作业
班 级: 学 号: 姓 名: 指导教师: 黄建才 日 期: 2013/5/9
Oracle的存储过程
摘要
存储过程是oracle中的一类大问题,在初次使用存储过程解决问题时,对存储过程的创建和使用方法不是很清楚,导致使用的时候老是提示错误。对于这个问题,我又从网上和书上找了一些例子来看,认真的学习了一下存储过程的简单的应用,简单的认识了一下存储过程的用法,并实践了一下,解决了之前的问题。Oracle中的存储过程的使用可以使得程序执行效率更高、安全性更好,因为过程建立之后 已经编译并且储存到数据库,直接写sql就需要先分析再执行因此过程效率更高,直接写sql语句会带来安全性问题,如:sql注入等。在大型数据库系统中,存储过程具有很重要的作用。存储过程是SQL语句和流控制语句的集合。存储过程在运算时生成执行方式,所以,以后对其再运行时其执行速度很快。
关键词:oracle 存储过程 创建 执行
1 引言
Oracle数据库无范式要求,可根据实际系统需求构建数据库,采用标准的SQL结构化查询语句,具有丰富的开发工具,覆盖开发周期的各个阶段,支持多种系统平台并且数据库的安全级别是C2级(最高级)等这些优点,使得oracle越来越受到人们的青睐,所占的市场份额也越来越多。在这次的oracle实验中切身感受到了oracle的一些优点,其他的优点还需要等以后的应用中来慢慢了解。在这次的oracle的实验中,在关于存储过程和函数的方面我遇到了一些难题,所以我就整理了一些资料来解决这个难题,最后就成了这篇大作业的内容。
在数据库中对数据的修改查询过程很频繁,oracle数据库也不例外,为了能更快速高效简便的完成这些操作,就要用到存储过程这个方法。存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。
存储过程是由流控制和SQL 语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。在ORACLE 中,若干个有联系的过程可以组合在一起构成程序包。
简单说,你在你的机器上写了个存储过程,这个存储过程像那些表里的数据一样被放在遥远的数据库服务器当中,但是它又是可执行的代码,其他能连到数据库服务器的用户,可以调用你写的存储过程。
它的作用是隐藏细节,就是说,你写的存储过程代码可能很复杂,但是其他人调用它却很简单,不用具体知道它是如何做的,且一次能完成多个指令。
oracle有系统存储过程和自定义存储过程2种存储过程。
系统存储过程就是由oracle预先提供的一组完成特定功能的存储过程,安装完oracle就有了。自定义存储过程就是存在oracle数据库里由一组plsql语句组成的自定义过程(procedure)。它可以供其它oracle自定义存储过程、自定义函数和job调用或者由客户端程序调用。
2 具体内容
(一)关于编写存储过程需要注意以下几点:
1赋值符号 :=
逻辑等 =
2注释单行代码用 --
注释代码块用 /*---*/
3字符串连接符 ||
4变量在变量声明区内进行声明:IS和BEGIN之间
5变量声明方式通常有如下三种:
1)单个变量
mo_flag NUMBER :=0;
content TABLE.CONTENT%TYPE;
2)数组
TYPE data_type IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER; --引用形式为data_type(i)
TYPE rule_type IS RECORD (data_id TABLE.ID%TYPE,
data_name TABLE.NAME%TYPE
); --引用形式为r
文档评论(0)