PLSQL简介
原书: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简介的更多相关文章
- PL SQL基本内容(原创)
本节介绍PL SQL的基本内容 本节所举示例数据来源oracle用户scott下的emp表和dept表,数据如下: 一.plsql简介: 1.概念:procedural language,过程化sql ...
- PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora原理解释
PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora原理解释 oracle网络配置三个配置文件 lis ...
- PLSQL:orecal,tnsname简介
导入ORACLE遇到很多问题,学了好多,其中很长时间花在网络配置上,刚开始学,具体原因不知道,先把搜集到的好文章存下来,以后慢慢研究. 监听配置文件 为了使得外部进程 如 CA ...
- PLSQL配置介绍
PLSQL配置简介,优化 来自为知笔记(Wiz) 附件列表 s=selectf=FROMw=WHEREsf=SELECT * FROMdf=DELETE FROMsc=SELECT COUNT(* ...
- PLSQL调用webservice
1. 用途简介 为什么要在Oracle中访问WebService?在系统实现中,有时会有直接在数据库端利用触发器.存储过程等方式进行数据传递.分发的业务,而其中可能会涉及一些业务逻辑,为了处理 ...
- oracle 索引的(创建、简介、技巧、怎样查看)
一.索引简介1.索引相当于目录2.索引是通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率.3.索引的创建要适度,多了会影响增删改的效率,少了会影响查询的效率,索引最好创建在取值分散 ...
- Oracle SQL调优之绑定变量用法简介
目录 一.SQL执行过程简介 二.绑定变量典型用法 2.1.在SQL中绑定变量 2.2.在PL/SQL中使用绑定变量 2.3.PL/SQL批量绑定变量 2.4.Java代码里使用绑定变量 最近在看&l ...
- PLSQL Developer 超简单使用!!!
PLSQL Developer 简介 PLSQL Developer是Oracle数据库开发工具,很牛也很好用,PLSQL Developer功能很强大,可以做为集成调试器,有SQL窗口,命令窗口,对 ...
- PLSQL导入dmp文件完整步骤(附图)
导入dmp文件分为三大步:创建表空间.创建用户.导入dmp文件 一.创建表空间: 点击new,新建一个sql window 语句为: create tablespace "表空间名" ...
随机推荐
- 人工机器:NDC-谷歌机器翻译破世界纪录,仅用Attention模型,无需CNN和RNN
终于找到ML日报的微信链接,抄之...................................... 请拜访原文链接:[谷歌机器翻译破世界纪录]仅用Attention模型,无需CNN和RNN. ...
- 装X数学:高雅的数学表示
采用高雅的数学描述 转自于:研究生之路怎么走? 高雅的数学描述会提高你论文的等级和加强评审人对你基础功底的认可.例如泛函分析.集合.测度.度量空间和拓扑空间.现代代数.微分几何等数学方面的 ...
- C++多个文本读取问题
同时使用两个 ifstream和 freopen 第二个就会失去效用,不知道错在了哪里! 1. 使用freopen打开: bool CPicToolsDlg::readTxt2Seq( std::st ...
- (转)基于MVC4+EasyUI的Web开发框架经验总结(13)--DataGrid控件实现自动适应宽带高度
http://www.cnblogs.com/wuhuacong/p/4085725.html 在默认情况下,EasyUI的DataGrid好像都没有具备自动宽度的适应功能,一般是指定像素宽度的,但是 ...
- 09 Django组件之用户认证组件
没有学习Django认证组件之前使用装饰器方法 from django.shortcuts import render, HttpResponse, redirect from app01.MyFor ...
- xml方式实现aop编程
第一:引入jai文件 第二:引入aop名称空间 第三:配置aop
- 理解Linux CPU负载和 CPU使用率
CPU负载和 CPU使用率 这两个从一定程度上都可以反映一台机器的繁忙程度. cpu使用率反映的是当前cpu的繁忙程度,忽高忽低的原因在于占用cpu处理时间的进程可能处于io等待状态但却还未释放进入w ...
- Codeforces Round #547 (Div. 3) E. Superhero Battle
E. Superhero Battle A superhero fights with a monster. The battle consists of rounds, each of which ...
- 【ACM】poj_1363_Rails_201308081502
Rails Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 21528 Accepted: 8597 Descriptio ...
- I - Tunnel Warfare
I - Tunnel Warfare HDU - 1540 思路:原来以为自己已经完全理解了线段树,现在发现其实还差一些火候,做题的时候太拘泥于格式,思路不是很能放开. #include<cst ...