- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第17章 PL/SQL概述 PL/SQL(Procedural Language/SQL)是Oracle对标准数据库SQL语言的扩展。在PL/SQL中,不仅可以使用SQL语句,而且还可以在PL/SQL语句中定义变量和常量、使用条件分支和循环控制语句、可以进行异常处理、可以使用游标进行数据操作等。在任何运行Oracle的平台中,都可以使用PL/SQL进行应用程序的开发。这一节章来介绍PL/SQL的一些基本内容。 什么是PL/SQL 使用PL/SQL的原因 介绍一个简单的PL/SQL例子 PL/SQL开发工具简介 PL/SQL的编写规范 17.1 PL/SQL介绍 PL/SQL作为一种可以运行在任何Oracle平台中的较为复杂的程序设计语言,在实际的开发应用中得到了广泛的应用。这一节将对PL/SQL做一个总结性的介绍,并结合一个实例讲解为什么要在程序应用中使用PL/SQL。 17.1.1 什么是PL/SQL PL/SQL的英文全称为Procedural Language/SQL,它是Oracle对标准数据库SQL语言的扩展,它可以运行在任何的Oracle开发环境中。Oracle公司已经将PL/SQL语言集成到Oracle的服务器中,也可以在由其他的第三方提供的工具中使用PL/SQL。 PL/SQL语言是一种比较复杂的数据库程序设计语言,它将第四代语言(如SQL)的灵活性与第三代语言(如C、COBOL、C++、Java等)的过程性结构结合在一起,很好的融合了SQL语言中强大的数据库操作性以及程序设计语言中的过程结构。因此,PL/SQL语言的功能强大,可以用它来解决数据库应用中复杂的应用程序。目前,很多的开发人员和数据库管理人员(DBA)在实际应用中都开始使用PL/SQL语言。 17.1.1 什么是PL/SQL PL/SQL语言中的PL的英文全称是Procedural Language,顾名思义,作为对SQL语言的扩展,PL/SQL语言增加了许多程序设计语言中的过程结构。主要包括以下几个方面的扩展。 变量。例如,变量声明、变量初始化等 数据类型。例如,标量类型、复合类型、引用类型、对象类型、用户自定义类型等 结构控制语句,例如,条件语句IF-ELSE-THEN、CASE和循环语句LOOP、WHILE等。 过程和函数。在数据库中以编译好的形式存储,供其他的语句块调用。 异常处理。用来处理程序运行时出现的错误,将程序逻辑处理代码与错误处理代码分离。 17.1.2 为什么要使用PL/SQL 前面章节中介绍SQL语言时,已经知道,使用SQL可以很灵活的操作数据库,实现数据表(或者视图)的创建、数据的查询、增加、修改、删除、表结构的修改、权限的授予与回收等操作,那么为什么要使用PL/SQL语言呢。 在实际的应用中,有些时候需要处理的业务逻辑可能会比较复杂。现在考虑这样一个问题,一所学校要对某一名教师的职称进行修改,如果这个教师不存在,就向教师信息表中插入一条该教师的记录;如果这个教师存在,就在教师信息表中修改这名教师的职称信息。对于这个问题,如果仅使用SQL语言是无法来完成的,因为在SQL语言中,并没有提供用于判断的语句命令。 17.1.2 为什么要使用PL/SQL 那么使用PL/SQL可以完成上面的这个业务逻辑吗。答案是肯定的。因为PL/SQL语言作为对SQL语言的扩展,提供了像条件判断、循环判断这样的结构控制语句,因此类似与上面的问题(甚至比上面的问题还复杂的问题)可以很容易的用PL/SQL语言来解决。其实现的主要代码如下所示。 DECLARE v_ teaID VARCHAR2(15) := t152303; v_ teaName VARCHAR2(10):= 王杰; v_age NUMBER(2) :=45; v_ dept VARCHAR2 (20) :=’计算机系’; 17.1.2 为什么要使用PL/SQL v_ profession VARCHAR2 (10) :=’教授’; v_ salsry NUMBER(6,2) :=5000; BEGIN UPDATE t_ teacher SET profession =v_ profession WHERE teaID = v_ teaID; IF SQL%NOTFOUNDTHEN INSERT INTO T_student VALUES(v_ teaID, v_ teaName, v_age, v_ dept, v_ profession, v_ salsry); END IF; END; 17.2 一个PL/SQL的例子 为了让读者能够了解PL/SQL语句块的基本组成,这里给出一个使用PL/SQL语言完成查询学生信息表(t_student)中指定学生编号对应
您可能关注的文档
最近下载
- 明星大侦探雨中钟楼.pdf VIP
- 2025人教英语三年级上册Unit2Different families单元测试.pdf VIP
- 等级保护三级等保2.0与等保1.0对比.docx VIP
- 《装配式装修标准化模块化设计 》课件——模块二:装配式装修墙面部品体系.ppt VIP
- 《装配式装修标准化模块化设计 》课件——模块一:概论.ppt VIP
- 《装配式装修标准化模块化设计 》课件——模块六:集成厨房部品体系设计装配式装修.ppt VIP
- 《德国与中国学前教育的异同.doc VIP
- 《装配式装修标准化模块化设计 》课件——模块七:装配式装修卫浴部品体系设计.ppt VIP
- 《装配式装修标准化模块化设计 》课件——模块九:装配式装修智能家居体系设计.ppt VIP
- 《装配式装修标准化模块化设计 》课件——模块十:装配式装修收纳家具体系设计.ppt VIP
文档评论(0)