原书:steven feuerstei-oracle PLSQL grogramming 2014


PL / SQL代表“结构化查询语言和过程语言。 Oracle公司推出了PL / SQL克服SQL中的一些限制并提供更完整的编程解决方案。

什么是PLSQL

Oracle的PL / SQL语言有几个定义特征:
它是一种高度结构化,可读且易于使用的语言,如果您不熟悉编程,PL / SQL是一个很好的起点。你会发现的
它是一种易于学习的语言,并且具有明确的关键字和结构来表达你的代码的意图。如果您有其他编程语言的经验,你将很容易适应新的语法。
它是Oracle开发的标准和可移植语言,如果编写PL / SQL过程或函数以在Oracle中执行数据库坐在您的笔记本电脑上,您可以将相同的过程移动到数据库在您的公司网络上执行它而不做任何更改。 一次编写,到处运行是Java出现之前很久就有PL / SQL的口号。但对于PL / SQL,无处不在的意思是“到处都有Oracle数据库”。

它是一种嵌入式语言PL / SQL并非设计用作独立语言,而是在主机环境中使用。因此,例如,您可以从数据库中运行PL / SQL程序(例如,通过SQL * Plus接口)。或者,您可以在Oracle De-veloper表单或报表中定义和执行PL / SQL程序(此方法称为客户端PL / SQL)。但是,您不能创建一个可以自行运行的PL / SQL可执行文件。

它是一种高性能,高度集成的数据库语言。现在,在编写软件以运行Oracle数据库时,您有很多选择。您可以使用Java和JDBC;你可以使用Visual Basic和ODBC;你可以使用Delphi,C ++等。但是,您会发现,使用任何其他语言编写高效的代码来访问PL / SQL中的Oracle数据库更容易。特别是,Oracle提供某些特定于PL / SQL的增强功能,例如FORALL语句,可以将数据库性能提高一个数量级或更多。

PLSQL起源

Oracle 公司一直领导软件行业,为数据库和应用程序的设计提供声明式,非过程性的方法。 Oracle服务器技术是世界上最先进,功能最强大,最稳定的关系数据库之一。它的应用程序开发工具,例如Oracle Forms,通过严格依赖“绘制屏幕”方法提供高水平的生产力,可以让开发人员避免繁重的自定义程序设置。

PLSQL早期版本

在Oracle的早期阶段,SQL的声明性方法与其突破性的关系技术相结合,足以满足开发人员的需求。但随着行业的发展,预期上升,需求变得更加严格。开发人员需要获得产品一些更深入的东西。他们需要在表单和数据库脚本中构建复杂的准则,异常和规则。

1988年,甲骨文公司发布了Oracle版本6,这是其关系的重大进步数据库技术。该版本的一个关键组成部分是所谓的程序性选项,或PL / SQL。几乎在同一时间,Oracle发布了期待已久的升级版到SQL * Forms版本2.3(现在称为Oracle的产品的原始名称表格或表格开发者)。 SQL * Forms v3包含了PL / SQL引擎,第一次在工具方面,允许开发人员编写他们的程序逻辑自然,直截了当的方式。

PL/SQL的第一次发布在其能力上是非常有限的。在服务器端,您只能使用PL/SQL来构建过程和SQL状态的“批处理”脚本。不能在服务器中构造模块化应用程序或存储业务规则。在客户端,SQLFraseV3.0确实允许您创建过程和函数,虽然对函数的支持未被记录,因此多年来它们没有被许多开发人员使用。此外,PL/SQL的这种发布没有对数组进行支持,并且不能与操作系统(输入输出)交互。这与一门成熟的编程语言相去甚远。

但是由于它的所有的这些的局限性,PL / SQL在开发人员社区中得到了热烈的,甚至是热情的。对在SQL * Forms中编写简单IF语句的能力的渴望很强烈。执行多SQL语句批处理的需求势不可挡。

当时很少有开发人员意识到PL / SQL背后的原始动机和驱动超出了对SQL * Forms等程序控制内部产品的需求。在Oracle数据库和工具的生命周期的早期,Oracle公司已经认识到其架构中的两个关键弱点:缺乏可移植性和执行权限问题。

改善可移植性

对于熟悉Oracle公司的人来说,对可移植性的担忧可能有点奇怪poration的营销和技术策略。 Oracle解决方案的标志之一 -
从20世纪80年代初开始的是它的移植行。在PL / SQL出现的时候,基于C的数据库在许多不同的操作系统和硬件平台上运行。SQL * Plus和SQL * Forms可轻松适应各种终端配置。然而所有这些报道,仍然有许多应用程序需要更复杂比如COBOL,C和FORTRAN等宿主语言提供的颗粒度控制。如一旦开发人员走出端口中立的Oracle工具,最终的应用程序将不再是便携式的。

PL / SQL语言是(并且是)旨在扩大应用范围 ,可以在独立于操作系统的编程中完全处理的工具。今天Java和其他编程语言提供了类似的可移植性。然而PL / SQL作为该领域的早期先驱脱颖而出,当然,它继续允许开发人员编写高度可移植的应用程。

改进执行权限于事务的完整性

比可移植性更基本的问题是执行权限。数据库SQL语言可以让您严格控制对任何特定内容的访问和更改
数据库表。例如,使用GRANT命令,您可以确保只有某些角色和用户可以对给定的表执行UPDATE。这个GRANT 命令在另一方面,无法确保用户对大多数业务对于一个或多个表做出正确的执行顺序。

PL/SQL语言提供了对逻辑事务的严格控制和管理。一方面,PL/SQL是通过执行权限的实现来实现的。相反,授予角色或用户更新表的权限时,只授予权限执行一个过程,该过程控制并提供对基础数据结构的访问。 该过程由不同的Oracle数据库架构(“定义者”)所拥有。 然后,授予这些需要事务的表的更新权限。 程序因此称为事务的“看门人”。一个程序(不管它是oracle-forms还是pro-c可执行文件)的唯一方法是通过该过程,从这个角度,应用程序的事务的完整性就得到了保障。

PLSQL简介的更多相关文章

  1. PL SQL基本内容(原创)

    本节介绍PL SQL的基本内容 本节所举示例数据来源oracle用户scott下的emp表和dept表,数据如下: 一.plsql简介: 1.概念:procedural language,过程化sql ...

  2. PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora原理解释

    PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora原理解释 oracle网络配置三个配置文件 lis ...

  3. PLSQL:orecal,tnsname简介

    导入ORACLE遇到很多问题,学了好多,其中很长时间花在网络配置上,刚开始学,具体原因不知道,先把搜集到的好文章存下来,以后慢慢研究. 监听配置文件             为了使得外部进程 如 CA ...

  4. PLSQL配置介绍

    PLSQL配置简介,优化   来自为知笔记(Wiz) 附件列表 s=selectf=FROMw=WHEREsf=SELECT * FROMdf=DELETE FROMsc=SELECT COUNT(* ...

  5. PLSQL调用webservice

      1.   用途简介 为什么要在Oracle中访问WebService?在系统实现中,有时会有直接在数据库端利用触发器.存储过程等方式进行数据传递.分发的业务,而其中可能会涉及一些业务逻辑,为了处理 ...

  6. oracle 索引的(创建、简介、技巧、怎样查看)

    一.索引简介1.索引相当于目录2.索引是通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率.3.索引的创建要适度,多了会影响增删改的效率,少了会影响查询的效率,索引最好创建在取值分散 ...

  7. Oracle SQL调优之绑定变量用法简介

    目录 一.SQL执行过程简介 二.绑定变量典型用法 2.1.在SQL中绑定变量 2.2.在PL/SQL中使用绑定变量 2.3.PL/SQL批量绑定变量 2.4.Java代码里使用绑定变量 最近在看&l ...

  8. PLSQL Developer 超简单使用!!!

    PLSQL Developer 简介 PLSQL Developer是Oracle数据库开发工具,很牛也很好用,PLSQL Developer功能很强大,可以做为集成调试器,有SQL窗口,命令窗口,对 ...

  9. PLSQL导入dmp文件完整步骤(附图)

    导入dmp文件分为三大步:创建表空间.创建用户.导入dmp文件 一.创建表空间: 点击new,新建一个sql window 语句为: create tablespace "表空间名" ...

随机推荐

  1. dubbo之事件通知

    事件通知 在调用之前.调用之后.出现异常时,会触发 oninvoke.onreturn.onthrow 三个事件,可以配置当事件发生时,通知哪个类的哪个方法 1. 服务提供者与消费者共享服务接口 in ...

  2. 创建一个类Person

    创建一个类Person,包含以下属性:姓名(name).年龄(age).朋友(friends数组).问候(sayhi方法,输出问候语,例如:"你好!").交朋友(addFriend ...

  3. PAT_A1072#Gas Station

    Source: PAT A1072 Gas Station (30 分) Description: A gas station has to be built at such a location t ...

  4. json-lib与Jackson的区别和用法分析

    一.Jackson概述 1.jackson包和版本 Jackson fasterxml和codehaus的区别: 他们是Jackson的两大分支.也是两个版本的不同包名.Jackson从2.0开始改用 ...

  5. yum的方式搭建mysql

    1.安装相应的软件yum install mysql : 安装mysql客户端 yum install mysql-server 安装服务端 yum install mysql-devel 安装相关的 ...

  6. softmax回归---sigmoid(1)

    介绍softmax之前先讲讲sigmoid: 逻辑回归模型常用的函数:sigmoid函数(用来做二分类) 表达式:f(x)=L/(1+exp-k(x-x0)) 其图像: 本质:将一个真值映射到(0,1 ...

  7. 详解一条sql语句的执行过程

    SQL是一套标准,全称结构化查询语言,是用来完成和数据库之间的通信的编程语言,SQL语言是脚本语言,直接运行在数据库上.同时,SQL语句与数据在数据库上的存储方式无关,只是不同的数据库对于同一条SQL ...

  8. 16._source元数据

  9. vue中访问数据接口的配置

    业务API接口地址: http://localhost:3816/api/ 前端UI浏览地址:http://127.0.0.1:8080/#/home 由于同源策略的问题: 需要配置代理: 在开发环境 ...

  10. BZOJ 1396 识别子串 (后缀自动机、线段树)

    手动博客搬家: 本文发表于20181221 00:58:26, 原地址https://blog.csdn.net/suncongbo/article/details/85150962 嗯,以后博客内容 ...