原书: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. crontab与系统时间不一致

    将线上数据库迁移至虚拟机后,运维没有把时间修改. 在后期把时间修改完成后,在数据库上也要修改修改,但是定时任务的备份时间却不在凌晨4点执行,而是在中午12:10分执行. 原因是修改时间后,需要重启cr ...

  2. [转]常用Git命令清单

    原文地址:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html 作者: 阮一峰 日期: 2015年12月 9日 我每天使用 Git , ...

  3. Visual Studio UI Automation 学习(二)

    今天恰好有时间,继续学习了一下UI Automation的知识.看了两篇博客,对UI Automation有了进一步的了解. https://blog.csdn.net/qq_37546891/art ...

  4. OpenCV向JNI层的参数转换

    九层之台,起于累土:千里之堤毁于蚁穴:成者半于九十.最近工程项目完全可以调试,却最后在 OpenCV向JNI层的参数转换 这个节点上遇到麻烦,看来得好好的思考一番,仔细寻找其中的纰漏. 一.实例 根据 ...

  5. 【JSP】常用跳转方式

    原文地址:http://blog.csdn.net/wanghuan203/article/details/8836326 (1)href超链接标记,属于客户端跳转 (2)使用javascript完成 ...

  6. react基础篇三

    事件处理 React事件绑定属性的命名采用驼峰式写法,而不是小写. 如果采用 JSX 的语法你需要传入一个函数作为事件处理函数,而不是一个字符串(DOM元素的写法) 例如,传统的 HTML: < ...

  7. rabbitmq-3.5.1-安裝

    系统版本:CentOS 6.5RabbitMQ-Server:3.5.1一.安装erlang1.安装准备,下载安装文件 wget https://packages.erlang-solutions.c ...

  8. TestNg学习一

    简介 TestNG是Java中的一个测试框架, 类似于JUnit 和NUnit,   功能都差不多, 只是功能更加强大,使用也更方便 Java中已经有一个JUnit的测试框架了.  TestNG比JU ...

  9. [SDFZOJ]1069:树上统计

    神题...std丑的不行. 我们可以发现i->i+1的边被覆盖过i×(n-i)次. 因为以1->i为左端点,以i+1->n的为右端点,i->i+1都将被覆盖这么多次. 然后从1 ...

  10. php 后端实现JWT认证方法

    JWT是什么 JWT是json web token缩写.它将用户信息加密到token里,服务器不保存任何用户信息.服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证.基于token的身 ...