Oracle扩展PL/SQL编程简介

简介:

 基本的SQL语句时极其常用的,但相对于SQL而言Oracle公司在SQL基础上引入一种过程化编程语言.PL/SQL(Producedural Language/SQL).PL/SQL构建于SQL自上.可以用来编写SQL语句的程序.PL/SQL是第三代语言.Oracle在此集成之上做的扩展.

(A)PL/SQL基本概念:

PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL. PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL就是把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言.

(B)PL/SQL的作用:

使用PL/SQL可以编写具有很多高级功能的程序,虽然通过多个SQL语句可能也能实现同样的功能,但是相比而言,PL/SQL具有更为明显的一些优点:
(1).能够使一组SQL语句的功能更具模块化程序特点;
(2).采用了过程性语言控制程序的结构;
(3).可以对程序中的错误进行自动处理,使程序能够在遇到错误的时候不会被中断;
(4).具有较好的可移植性,可以移植到另一个Oracle数据库中。
(5).集成在数据库中,调用更快.
(6).减少了网络的交互,有助于提高程序性能.
通过多条SQL语句实现功能时,每条语句都需要在客户端和服务端传递,而且每条语句的执行结果也需要在网络中进行交互,占用了大量的网络带宽,消耗了大量网络传递的时间,而在网络中传输的那些结果,往往都是中间结果,而不是我们所关心的。

 

而使用PL/SQL程序是,因为程序代码存储在数据库中,程序的分析和执行完全在数据库内部进行,用户所需要做的就是在客户端发出调用PL/SQL的执行命令,数据库接收到执行命令后,在数据库内部完成整个PL/SQL程序的执行,并将最终的执行结果返回给用户。在整个过程中网络里只传输了很少的数据,减少了网络传输占用的时间,所以整体程序的执行性能会有明显的提高.

(C)PL/SQL程序的基本结构:

 

 

PL/SQL块由四个基本部分组成:声明、执行体开始、异常处理、执行体结束.下面是四个部分的基本结构:

DECLARE—可选部分:变量、常量、游标、用户定义异常的声明

 ……

 

BEGIN—必要部分:SQL语句和PL/SQL语句构成的执行程序

 

 ……

 

EXCEPTION—可选部分:程序出现异常时,捕捉异常并处理异常

 

   ……

END;—必须部分
在数据库执行PL/SQL程序时,PL/SQL语句和SQL语句是分别进行解析和执行的。 PL/SQL块被数据库内部的PL/SQL引擎提取,将SQL语句取出送给Oracle的SQL引擎处理,两种语句分别在两种引擎中分析处理,在数据库内部完成数据交互、处理过程.

(D)PL/SQL程序在Oracle 10G中的包含内容:

本机上装的的Oracle  10G版本. 在Oracle 10G中包含这类语言的标准编程结构. 例如:

(1)块结构:

(2)变量和类型

(3)条件逻辑

(4)循环处理

(5)游标: Oracle中保存着查询返回的结果.

(6)过程

(7)函数

(8)包: Oralce中主要用来将过程和函数封装组合到一个单元中去.

通常PL/SQL用于向数据库中加入业务逻辑.这种集中化的代码可以由任何能够访问数据库的程序调用. 因为PL/SQL是基于SQL标准自上的. 其中包括SQL*PLus。C程序/Java程序等.

最后推荐各位一本关于Oracle中PL/SQL编程经典书籍;Oracle Database 10G PL/SQL Programming. 中文版已经出版. Orcale 11G 只有英文版本.




本文转自chenkaiunion 51CTO博客,原文链接:http://blog.51cto.com/chenkai/765103

相关文章
|
3月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
349 8
|
8月前
|
SQL Oracle 关系型数据库
解决大小写、保留字与特殊字符问题!Oracle双引号在SQL中的特殊应用
在Oracle数据库开发中,双引号的使用是一个重要但易被忽视的细节。本文全面解析了双引号在SQL中的特殊应用场景,包括解决标识符与保留字冲突、强制保留大小写、支持特殊字符和数字开头标识符等。同时提供了最佳实践建议,帮助开发者规避常见错误,提高代码可维护性和效率。
322 6
|
9月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
|
9月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差
【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差
|
9月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
本文来自YashanDB官网,介绍如何处理Oracle客户端sql*plus中使用@@调用同级目录SQL脚本的场景。崖山数据库23.2.x.100已支持@@用法,但旧版本可通过Python脚本批量重写SQL文件,将@@替换为绝对路径。文章通过Oracle示例展示了具体用法,并提供Python脚本实现自动化处理,最后调整批处理脚本以适配YashanDB运行环境。
|
SQL 存储 Oracle
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
568 13
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
383 9
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
276 6

推荐镜像

更多