![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
plsql性能
文章平均质量分 67
码三狼
孤独的旅行
展开
-
PLSQL入门与精通(第82章:尽量避免使用复杂的SQL)
本章不是技术性的话题,而是针对“很长很复杂的SELECT文”的一些说明和解释。为打到我们复杂的查询目的,Oracle提供了丰富的语法,我么在写SQL的时候,有的时候写了又长又复杂又的SELECT语句,反复会出问题:・如果一个SELECT语句里实现了很多的需求,变得特别复杂的话,修改很痛苦。如果我们后边维护的时候需要修改查询条件,就很麻烦。・其次,随着时间的推移数据量也会不停地增加,经常会发生性能恶化的问题。复杂SELECT文性能调优也变得很困难。复杂的SELECT大概发生在如下3种情况:首先原创 2021-04-06 20:40:56 · 300 阅读 · 0 评论 -
PLSQL入门与精通(第77章:表行数与游标相结合的使用例子)
前几次我们针对表·函数进行了说明。表函数是像表一样可以查询的行的集合的返回函数。可以在SELECT语句的FROM语句后边,作为一个表进行查询。还有一个经常的用法就是,该表函数作为游标变量当做函数的一个参数进行使用。具体来说,将其他查询(SELECT语句)的结果用表函数的形式进行使用。在表函数中,通过游标变量参照其他查询的结果,根据该值进行某个程序处理,结果通过PIPE ROW处理从表函数中返回数据。例如,为了说明极端简单的例子,有以下的查询(SELECT*FROM TEST02)。SELEC原创 2021-04-04 12:01:30 · 151 阅读 · 0 评论 -
PLSQL入门与精通(第75章:函数作为表来使用)
从这次开始就新的主题“表·函数”进行解说。大家有没有想过,如果在SELECT文的FROM后边跟的是表或者试图。如果这个表或者试图如果是函数,这个函数返回的是一个结果list,那我们是不是会很方便呢?如果这样可以的话,就不需要每个SQL两边写一堆返回大量数据结果的PLSQL块了,直接用放回数据结果的函数替代就方便了很多。或者是,程序中表和表结合的时候,其中部分表也可以用返回多条数据的函数来替代,那也很方便。或者是,游标访问你的表和返回结果集的函数结合起来,也很方便。也就是说,如果能把返回多条数据原创 2021-03-28 18:08:38 · 189 阅读 · 0 评论 -
PLSQL入门与精通(第72章:LOGOFF触发器)
上一次我们介绍了登录触发器,本次我们介绍注销触发器。我们这里的注销指的是退出回话或者退出回话的意思。注销触发器是用户退出回话或者数据库数据库时启动的触发器。他是会话结束前的最后一步处理。登录触发器和注销触发器都是属于同一类别的触发器,他们有以下2个最大的差别:1.登录触发器在SYS用户下是不能被启动的,注销触发器在SYS用户下是可以被启动的。2.在登录触发器中,如果发生例外,例外没有处理的话,则无法登录,但是在注销触发器中发生未处理的例外的话,用户照样能够退出回话。首先,关于1.的部分,登原创 2021-03-28 00:35:09 · 208 阅读 · 1 评论 -
PLSQL入门与精通(第66章:批量绑定异常处理)
本次介绍一下“批量绑定”发生异常的时候的处理。使用数组数据对DML进行FORALL统一处理时,数据内容可能会违反制约等而导致的执行错误。这种情况下,FORALL处理失败后会全部被回滚。但是,发生错误的时候提示了一个简单的错误信息,具体时间数组中的哪个数据发生了什么样的错误是无法判断的。但是,实际上我们调查异常的时候,需要知道是哪条数据出什么样的错误了,系统也提供了相应的方法。我们准备一个出错的FORALL的例子:TEST01表中设定一些限制。先删除TEST01表。SQL> DROP TA原创 2021-03-25 09:17:25 · 323 阅读 · 0 评论 -
PLSQL入门与精通(第65章:批量绑定FORALL 使用数组部分索引的用法)
上一次,我们介绍了配列的索引不连续的情况下FORALL语句的用法。但是,在通常情况下,配列的数据都是连续的,或者其中部分数据使我们想试用的数据,一部分是不想用的数据,这时候也可以通过FORALL语法进行批量绑定。方法是我们可以将需要的的配列的索引拿出来,放到另外一个配列中使用ForALL。例如,配列的索引为“1、2、3”时,我们只想用其中的“1、3”2个索引进行FORALL,我们就可以吧“1、3”的值保存在其他配列中,通过这个中间的配列的值,从而在FORALL中去使用配列原来的数据。我们把要处理原创 2021-03-25 07:50:39 · 180 阅读 · 0 评论 -
PLSQL入门与精通(第64章:批量绑定FORALL 不连续数组的用法)
我们继续解说批量绑定相关内容。本章针对是“FORALL语句中批量绑定变量的配列索引值是不连续做法”进行解释。在批量绑定中处理DML(INSERT、UPDAATE、DELETE)时,之前已经说明了FORALL的语法结构。但是之前介绍的FORALL句法只能使用配列的索引值是连续的情况。如果配列的索引不连续就会出错。FORALL语法中,配列不连续的时候语法结构如下:–配列索引是连续的时候—FORALL 索引变量 IN 下限值…上限值使用配列数组的一个DML语句;–配列索引是不连续的时候—FORAL原创 2021-03-24 22:09:25 · 163 阅读 · 0 评论 -
PLSQL入门与精通(第63章:批量绑定FETCH INTO COLLECT INTO LIMIT)
上一次,介绍了FETCH BULK COLLECCT INTO语句,可以用于显示游标的结果集所有数据一次性批量取得的处理中。也就是说,可以一次性操作,将结果集所有数据转换成配列数组。优点是:结果集不能随意利用某一行数据,但是配列可以自由访问任意节点的数据。本次接着上次继续解说LIMIT语句用法。LIMIT语句是FETCH BULK COLLECCT INTO语句的可选语句。没有LIMIT语句的时候,结果集全部数据一次性取得并保存到数组变量中。因此,结果集的数据非常多的时候,将大量的数据一次性放到原创 2021-03-24 18:28:21 · 985 阅读 · 0 评论 -
PLSQL入门与精通(第62章:批量绑定FETCH INTO COLLECT INTO)
上一次,我们说明了一下用SELECT BULK COLLECCT INTO的语句进行批量绑定的方式进行取得数据。本章节说明一下显示游标的FETCH INTO文的批量绑定方式:FETCH BULK COLLEC INTO。使用FETCH BULK COLLECCT INTO语句的话,可以把FETCH到的所有行一起放到结果集中,也成为了批量绑定方式。因此,比一行一行地FETCH,性能要好得多。接下来,我们分别就普通FETCH INTO文的处理和FETCH BULK COLLECCT INTO文的处理进行原创 2021-03-24 17:18:10 · 682 阅读 · 0 评论 -
PLSQL入门与精通(第60章:批量绑定变量提高效率的测试效果)
PL/SQL是由PL/SQL引擎执行的,块内的SQL语句是由SQL引擎执行的,所以循环处理中反复执行SQL的话,引擎会发生多次切换。切换次数多的话开销就会很大。因此,按数值配列的方式向SQL引擎发送SQL语句,然后统一执行,引擎切换只需要发生一次,执行速度会大幅提高。让我们我么实际测试一下效果吧。接着上一章的例子,上次使用的TEST01表,我们删除后从头开始。SQL> DROP TABLE TEST01;表已删除。SQL> CREATE TABLE TEST01 ( A NUMBE原创 2021-03-23 20:37:58 · 127 阅读 · 0 评论 -
PLSQL入门与精通(第59章:批量绑定变量提高效率)
从本章开始一个新的主题“批量绑定”。通常在SQL语句中给PL/SQL变量赋值叫做绑定。一次绑定一个完整的集合称为批量绑定。在PL/SQL块中,使用数组值在循环处理中反复执行SQL语句时,如果改写成批量绑定的语法,性能会大幅度提高。要理解批量绑定,我们需要知道plsql的2个引擎:一个是PL/SQL引擎,一个是SQL引擎。PL/SQL引擎:无名块,存储程序等PL/SQL块先被送入到PL/SQL引擎,然后按顺序执行块内的处理。SQL引擎:如果PLSQL块内的处理遇到SQL文(INSERT、UP原创 2021-03-23 20:06:28 · 250 阅读 · 0 评论 -
PLSQL入门与精通(第51章:用PLSQL定制小工具脚本)
我们在调查和开发中,如何挺高开发效率,是经常遇到的问题。本次我们关于使用plsql制作自己想要的工具,从而提高作业效率,举例说明。假如,写程序时,必须事先掌握表中的键(主键、外部键)等的情报。如果手头没有表定义的文档,或者没有什么方便的工具,需要自己查询数据,这很麻烦。例如,在USER_CONSTRAINTS这个系统提供的视图中,可以知道表名称和类型。通过USER_CONS_COLUMNS这个系统视图,可以知道列的名称和情报。假如有外键约束的话,还想知道知道外键所参照的父表的名字和父键,必须按照如原创 2021-03-14 12:04:06 · 419 阅读 · 0 评论 -
PLSQL入门与精通(第47章:动态SQL的变量绑定)
这次就动态SQL中的绑定变量的使用进行说明。这次内容和性能相关。首先,让我们看一个不使用绑定变量的动态SQL的例子:<情况1:动态的SQL的变量值作为连续字符串的情况>SQL> CREATE OR REPLACE PROCEDURE GET_ENAME ( P_ID IN NUMBER,2 P_NAME OUT VARCHAR2)3 IS4 V_NAME EMP.ENAME%TYPE;5 BEGIN6 //7 --动态SQL:获取指定员工编号的员工名称8原创 2021-03-13 15:23:47 · 806 阅读 · 0 评论 -
PLSQL入门与精通(第38章:DMLSQL语句触发器和行触发器的语法和例子)
上次简单的解释了一下DML触发器的特点:DML触发器有全表触发器和行触发器,全表触发器针对的是整个DML语句,行触发器对DML操作的每一行数据。这次详细说明一下DML触发器的语法。首先是“全表触发器”最低限度的语法:<全表触发器定义语法>1 CREATE OR REPLACE TRIGGER 触发名2 时机3 事件4 ON 表名称5 无名PL/SQL块解释如下:・第2行的时机指定“BEFORE”或“AFTER”。如果是BEFORE,则在DML处理之前启动触发器,如果是AFTER,则在原创 2021-03-05 13:28:39 · 247 阅读 · 1 评论 -
PLSQL入门与精通(第35章:包实体部分的初始化)
在第33回中,虽然包装的构造只有规格部,但是例外的是,执行部可以在包装主体的最后记述,那个话将成为其他的机会。我这次想说那个。包实体部分的执行部,同一个会话中第一次调用包时会自动执行一次的执行部,后边再调用改包不会继续执行该执行部。请看例子:<1.包申明部>SQL> CREATE OR REPLACE PACKAGE PAC12 IS3 —第一次调用此包的日期和时间存放的变量45 FirstCall DATE;6 END;7 /包已创建。【上原创 2021-03-03 19:14:22 · 343 阅读 · 1 评论 -
PLSQL入门与精通(第28章:包的申明和定义详细解释)
上次针对包进行了简单的说明,这次进行深入介绍。正如上回解说的那样,包是将过程、函数、变量等打包一块的内容,分为申明和定义两个部分。(实际上只有申明没有定义的包存在,其他时间介绍。)申明部是“总结了用户和应用程序可以使用的东西或者接口”。与此相对,定义中记述的内容不能由用户或应用程序直接使用的内容。实现了接口与实现分离的作用。申明部中记述的过程和函数的接口,对于用户或者调用者来看所需的接口的信息。因此,申明部不会写把程序和功能实现逻辑完全写出来。申明部记述的过程和函数的接口的信息,也就是说,程序原创 2021-03-01 20:16:54 · 213 阅读 · 0 评论 -
PLSQL入门与精通(第27章:包)
从这章开始,我们针对package(包)进行说明。从此进入高级篇。我们的高级篇将对包、触发器、其他函数等进行解说。首先是包:包是指吧一些东西总结在一起的意思。PL/SQL的包可以包含过程和函数,甚至变量。好处:包会装入存储器中,所以如果将相关的过程、函数放到包里,性能上会好些。例子:创建PAC1包,包里边包含PROC1的程序,吧一个P1的参数打印到SQL*Plus画面上。<首先创建包体,或者叫包的申明>SQL> CREATE PACKAGE PAC12 IS3 PROC原创 2021-03-01 10:21:13 · 373 阅读 · 0 评论 -
PLSQL入门与精通(第25章:利用函数分类统计)
上次说明了SQL调用存储函数的条件,实际上,在什么情况下会从SQL中调用存储函数呢?一言以蔽之,可以说是为了简化复杂的查询(SELECT),从SELECT文中调用存储函数的情况。与DML(INSERT,UPDATE,DELETE)不同,SELECT文多为复杂的语句,有时难以写出符合要求的SELECT文。这种时候,如果使用函数的功能的话,根据情况,可以简单地写SELECT文。例如,将销售额表的销售额按“区分”进行合计的情况。销售表上没有“区分”这一列,这一分类是根据每个销售内容的不同而决定的。在这原创 2021-03-01 09:51:29 · 527 阅读 · 0 评论 -
PLSQL入门与精通(第24章,SQL中使用函数的前提)
上次,我们看到了存储函数可以像SQL函数那样在SQL语句中使用(呼出)。但是,上一个函数在INSERT语句中是正常使用的,但在SELECT语句中使用时出错了。像这样,从SQL语句调用用户定义的函数时,其函数定义有很多条件。这个条件是这次的主题。详细内容记载在PL/SQL语言的手册中,将简单易懂地说明其精髓。【条件1】首先,函数参数的数据类型和RETURN数据类型必须是表列的数据类型。也就是说,需要NUMBER、VARCHAR2、DATE等非常普通的表列的数据类型。该函数不能是特殊数据类型:原创 2021-02-28 11:33:48 · 170 阅读 · 0 评论 -
PLSQL入门与精通(第22章:函数语法)
上次就存储和函数的概要进行了解说。函数是有返回值,呼叫的方法直接可以作为变量带入,这2点和过程有很大的不同。从这次开始,我们就来解说函数的基本语法构成。首先是存储函数的制作语法,与过程的制作语法没有太大的变化。以下主要说明与过程的不同之处:<<存储函数的创建语法>>1 CERATE OR REPLACE FUCTION 功能名称(临时参数名称 模式 数据型,…)2 RETURNN 数据型3 IS4 宣言部5 BEGIN6 执行部7 RETURN原创 2021-02-28 10:34:37 · 281 阅读 · 0 评论 -
PLSQL入门与精通(第21章:函数的基本概念)
从这次开始以存储函数为主题。首先先说概要。详细的语法说明下次进行。存储过程和函数都是程序,有的时候有本质上的区别。最大的差别就是:函数有返回值要返回到调用方的值,在存储过程中也可以使用OUT的参数,但如果是函数,则不通过参数直接返回数值。使用函数直接可以在语句中记述值的地方使用,譬如写在代入句(:=)的右边。或者,IF语句等条件式的值、SELECT语句的SELECT句、WERE句、INSERT语句的VALES句、UPDATE语句的SET句、过程的参数等,可以记述数值的地方有很多,但都可以直接用函原创 2021-02-28 10:06:07 · 128 阅读 · 0 评论 -
PLSQL入门与精通(第19章,Sequence的不连续性)
第19回“存储过程事例2(保证连续性的发番处理)”前篇 2012.05.07 推特 这次与其说是过程的事例,不如说主要介绍连续号码的发号方法的定式,介绍将其存储过程化的方法。实际上,这是常见的过程事例。 暂且从上次的话开始继续着,不过,没有读上一次的人也只读这一次也没关系。上次,作为存储过程的例子,说明了订单登记处理(PROC订单受理过程)。内容是,检查该产品的库存数,如果不是库存不足的话就登记订单,原创 2021-02-27 17:40:16 · 327 阅读 · 0 评论 -
PLSqL入门与精通(第18章:存储过程具体例子)
这次解说一下存储过程的具体例子。存储过程是描述一系列处理的命名的PL/SQL块。可以用在各种场合。本次简介一个具体例子:例如,在某个公司的业务中,管理着产品的库存。因此,有“库存”的表。SQL CREATE TABLE库存(2 产品名称 VARCHAR2(20)PRIMARY KEY,3 库存数 NUMBER);表创建成功。数据登记:电视的库存数为10,收音机的库存数为5。SQL>INSERT INTO 库存 VALUES('电视’,10);创建了一行。SQL>INSER原创 2021-02-27 11:29:31 · 479 阅读 · 0 评论 -
PLSQL入门与精通(第17章:存储过程的基本语法结构)
上次解说了存储过程的基本概念:在无名PL/SQL块上命名并存储在数据库中就是存储过程。从这次开始,我将对存储过程的语法进行解说。首先整体结构。<<存储过程创建的基本语法>>1 CERATE OR REPLACE PROCEDURE 过程名称(临时参数名称模式数据类型,…)2 IS3 宣言部4 BEGIN5 执行部6 EXCEPTION7 例外处理部8 END;解释:●过程创建的关键字第1行,要创建存储过程,请使用CREATE PROC原创 2021-02-27 11:02:32 · 497 阅读 · 0 评论 -
PLSQL入门到精通(第16章:存储过程基本概念)
到现在为止(第1章~第15章)使用了的PL/SQL的例子程序,全部是「无名块」的形式。“无名块”是指从客户端程序向Oracle数据库服务器发送的PL/SQL块。客户端程序是用户开发的应用程序。总之,从客户端向Oracle数据库服务器发送的PL/SQL块是“无名块”。正如无名方块这个词一样,这个块没有名字。当Oracle数据库从客户端接收到块时,将执行块内的处理,并将结果返回给客户端。在这一系列过程中,该PL/SQL块不需要有名称。因此,从客户发送到服务器的PL/SQL块没有起到名字,在这个意义原创 2021-02-27 10:50:03 · 473 阅读 · 0 评论 -
PLSQL入门于精通(第15章:键值数组的键值存在性检查)
这次就标号数组(或者叫键值数组)的键的是否存在的检查,进行说明。标号数组可以新增加键,并给予赋值,同时将该键的区域分配给存储器。也就是说,通过新增加键值,可以轻松扩展领域保存数值。那么,用新的键代入来扩展区域的话,如果使用不存在的的键,会发生错误。例子:<使用不存在的键访问而导致错误的示例>SQL> connect scott/tiger已连接。SQL> SET SERVEROUTPUT ONSQL> DECLARE2 TYPE A_TYPE IS TABL原创 2021-02-27 10:37:27 · 230 阅读 · 0 评论 -
PLSQL入门到精通(第14章,标号数组的排序)
本次就联合组合(PL/SQL表、索引附表)的属性进行说明。下面介绍使用这些属性,按键值顺序排序并取出值的方法。请看下面的例子:SQL> SET SERVEROUTPUT ONSQL> L1 DECLARE2 TYPE A_TYPE IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER;3 A A_TYPE;4 I BINARY_INTEGER;5 BEGIN6 A(5):=‘五’;7 A(-3):=“负原创 2021-02-27 09:51:57 · 574 阅读 · 0 评论 -
PLSQL入门到精通(第13章:集合类型和变量)
这次就和上次的记录变量一样,作为构造复杂的变量,对集合变量进行说明。集合变量是可以存储多个数据类型值的变量。数据类型可以是基本简单的数据类型,如NUMBER,也可以是用户定义的记录类型等复杂的数据类型。作为集合变量的一个应用示例,游表关闭后,无法再次提取游标得值的时候,可以在游标处理中使用集合变量保存数据。否则的话,反复使用游标数据的话,就需要把游标暂时关闭,然后重新打开,反复读到需要的数据为止,这是非常不合理的逻辑。这种时候,如果使用集合鼻梁的话,可以优雅地解决该问题。也就是说,如果将提原创 2021-02-23 18:06:24 · 537 阅读 · 0 评论 -
PLSQL入门与精通(第12章:自定义记录类型)
前边简单解释了一下记录变量,这次详细解说一下记录变量。到上次为止,已经详细解说了6次明示光标的处理。回顾之前的内容:・第3章:基本变量的声明・第4章:使用%TYPE进行变量声明・第8章:游标处理,使用%ROWTYPE进行记录变量的声明如上所述,在第8章中,我们对使用%ROWTYPE的记录变量的定义方法进行了说明,这次将更详细地说明记录变量。也就是说,不使用%ROWTYPE,而是自己声明记录类型,然后再声明记录变量的方法。%ROWTYPE是根据游标和表的定义,定义与该行相同的记录类型时使用的原创 2021-02-23 13:19:39 · 334 阅读 · 1 评论 -
PLSQL入门与精通(第11章:游标双循环处理)
一般情况下,数据要以一栏和明细的形式在画面上显示。这种程序相对会复杂一些。例如,首先有一行是部门的数据,在部门下方需要显示多行该部门的员工的信息。然后,再显示下一个部门的数据,再显示部门所属的员工信息;然后。。重复同样的处理。这样的表示在简单的SELECT语句中很难,即使是编程,也必须在标题(部门)的循环处理中记述细节(社员)的循环处理。也就是说,需要双重循环构造,所以编程会变得复杂。但是,如果使用游标FOR循环句,即使是双重循环结构,也很简单。请看下面的例子。仅8行执行双循环处理。SQL&g原创 2021-02-23 10:01:32 · 542 阅读 · 0 评论 -
PLSQL入门与精通(第10章:游标简化写法)
像上次一样,用游标一行一行地取得,直到最后一行为止重复同样的处理,这样的模式可以用更简单的方法来记述:游标FOR循环语句。因为很简单,如果可能的话建议使用游标FOR循环语句。那么,我马上来解说游标FOR循环语句。比较上次的例子程序和用游标FOR循环处理改写了那个的情况。分别为(A)、(B)。(A)一般的记述1 DECLARE2 CURSOR CUR_EMP IS3 SELECT EMPNO, ENAME FROM EMP4 WERE DEPTNO=&部门编号;5 REC CUR_E原创 2021-02-23 09:42:11 · 247 阅读 · 0 评论 -
PLSQL入门与精通(第9章:游标的打开取得关闭)
上一章程序中的游光定义和游标记录变量定义为中心进行了解说,这次以执行部游标处理的记述为中心进行解说。也就是说,“游标的打开、取得、关闭”。例子程序如下。指定部门编号,显示该员工的一览表。▼▼例子程序的内容行编号是为了便于说明。▼▼1 set serveroutput on2 set verify off3 DECLARE4 /显式光标的声明/5 CURSOR CUR_EMP IS6 SELECT EMPNO, ENAME FROM EMP7 WERE DEPTNO=&部门编号;原创 2021-02-23 09:30:31 · 388 阅读 · 0 评论 -
PLSQL入门与精通(第8章:游标记录变量)
上次介绍了指定部门编号,并在画面上显示该部门员工明细的游标处理的PL/SQL例子程序,本章内容将进一步进行说明。上次的例子程序如下:▼▼从这里开始上次样本的内容行编号是为了便于说明的▼▼▼1 set serveroutput on2 set verify off3 DECLARE4 /游标的声明/5 CURSOR CUR_EMP IS6 SELECT EMPNO, ENAME FROM EMP7 WHERE DEPTNO=&部门编号;8 /记录类型变量的声明/9 REC CU原创 2021-02-22 20:06:46 · 229 阅读 · 0 评论 -
PLSQL入门与精通(第7章:游标)
本章描述游标用法。在SELECT语句中,可以用游标的方式获得多行数据的每一行。到目前为止都是“SELECT INTO文”。如果只返回一行结果的话用SELECT INTO没问题,如果返回多行结果SELECT INTO语句就会出错,所以SELECT INTO只在主KEY访问的情况下使用。但是,在以主KEY以外为条件的查询中,一般会出现多行数据,这种情况下,就需要用到游标。例子:这次,指定主键以外的条件:指定部门编号,在画面上显示该部门所属员工的详细情况。请创建以下脚本文件,在SQL*Plus中执行。原创 2021-02-22 19:01:52 · 313 阅读 · 0 评论 -
PLSQL入门与精通(第5章:SELECT INTO)
大家好,我是从事软件行业20年的牧无文兄。今天针对PLSQL的SELECT进行说明。请注意单独使用SELECT语句和PL/SQL中使用SELECT语句时的区别。首先,有一个单独的SELECT语句可以做到以下几点:SQL> SELECT SAL FROM EMP WHERE EMPNO = 10001;SAL1300从员工表(EMP表)中,员工编号(EMPNO)询问了10001的员工工资(SAL)。那么,用PL/SQL块试着执行这个SELECT语句吧。要做成PL/SQL块,如果不需要变原创 2021-02-21 14:59:56 · 2266 阅读 · 1 评论 -
PLSQL入门与精通(第3章:变量定义)
大家好。我是从事软件行业20年的牧无文兄这章我们来介绍一下PLSQL的变量。程序逻辑内一般情况下会有很多个执行语句,执行语句之间要进行交流,交流方式就是通过变量,让很多执行语句共有这些值。变量定义,必须把那个放在各个执行语句都能够访问的共同场所,这个场所叫做变量定义区域(今后称为变量定义域)。无名PL/SQL块,则使用DECLARE这个关键字开始变量定义域。在变量定义域中定义变量,然后在以BEGIN关键字开头的执行域中使用这些变量来描述执行语句。变量定义的语法如下:变量名 变量类型;Orac原创 2021-02-21 12:57:25 · 879 阅读 · 0 评论 -
PLSQL入门与精通(第2章:HelloWord例子)
大家好。我是从事软件行业20年的牧无文兄。上一章对PL/SQL做了一个简单的介绍。这一章简单认识一下PLSQL样子。所有语言学习都是从“HelloWord”开始的,我们也是从“HelloWord”开始认识PLQL。首先,我们要有PLSQL执行环境,给数据库发送PLSQL或者SQL命令的时候,需要用某些中间件,譬如ODBC中间件,或者其他中间件。其中SQLPLUS直接可以发送SQL命令或者PLSQL块。环境1:SQLPLUS 。这个是安装Oracle的的时候的一个简单的工具。(详细安装和配置大家自己从原创 2021-02-21 12:26:34 · 390 阅读 · 0 评论