![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
批量绑定
文章平均质量分 77
码三狼
孤独的旅行
展开
-
PLSQL入门与精通(第66章:批量绑定异常处理)
本次介绍一下“批量绑定”发生异常的时候的处理。使用数组数据对DML进行FORALL统一处理时,数据内容可能会违反制约等而导致的执行错误。这种情况下,FORALL处理失败后会全部被回滚。但是,发生错误的时候提示了一个简单的错误信息,具体时间数组中的哪个数据发生了什么样的错误是无法判断的。但是,实际上我们调查异常的时候,需要知道是哪条数据出什么样的错误了,系统也提供了相应的方法。我们准备一个出错的FORALL的例子:TEST01表中设定一些限制。先删除TEST01表。SQL> DROP TA原创 2021-03-25 09:17:25 · 316 阅读 · 0 评论 -
PLSQL入门与精通(第65章:批量绑定FORALL 使用数组部分索引的用法)
上一次,我们介绍了配列的索引不连续的情况下FORALL语句的用法。但是,在通常情况下,配列的数据都是连续的,或者其中部分数据使我们想试用的数据,一部分是不想用的数据,这时候也可以通过FORALL语法进行批量绑定。方法是我们可以将需要的的配列的索引拿出来,放到另外一个配列中使用ForALL。例如,配列的索引为“1、2、3”时,我们只想用其中的“1、3”2个索引进行FORALL,我们就可以吧“1、3”的值保存在其他配列中,通过这个中间的配列的值,从而在FORALL中去使用配列原来的数据。我们把要处理原创 2021-03-25 07:50:39 · 175 阅读 · 0 评论 -
PLSQL入门与精通(第64章:批量绑定FORALL 不连续数组的用法)
我们继续解说批量绑定相关内容。本章针对是“FORALL语句中批量绑定变量的配列索引值是不连续做法”进行解释。在批量绑定中处理DML(INSERT、UPDAATE、DELETE)时,之前已经说明了FORALL的语法结构。但是之前介绍的FORALL句法只能使用配列的索引值是连续的情况。如果配列的索引不连续就会出错。FORALL语法中,配列不连续的时候语法结构如下:–配列索引是连续的时候—FORALL 索引变量 IN 下限值…上限值使用配列数组的一个DML语句;–配列索引是不连续的时候—FORAL原创 2021-03-24 22:09:25 · 159 阅读 · 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 · 967 阅读 · 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 · 675 阅读 · 0 评论 -
PLSQL入门与精通(第61章:批量绑定SELECT BULK COLLECT INTO)
上次我们验证了批量绑定的速度非常快。用循环处理的话,50万行INSERT需要15秒,用批量绑定的方式仅仅是0.6秒的,快了20多倍,效果惊人。上一章说的是DML文的INSERT语句,如果是SELECT INTO和FETCH INTO该怎么做呢。今天我们解释一下SELECT INTO的批量绑定的用法。(下次解说FETCH INTO的批量绑定用法)如前所述,SELECT INTO文,只能返回1行结果,想将多行保存成数组时,如果使用SELECT INTO语句,必须对每一行的SELECT INTO语句进原创 2021-03-24 14:18:33 · 846 阅读 · 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 · 126 阅读 · 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 · 245 阅读 · 0 评论