首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Oracle PL/SQL如何输出在FORALL语句中进行了多少次插入

在Oracle PL/SQL中,可以使用SQL%ROWCOUNT来获取在FORALL语句中进行了多少次插入操作。

FORALL语句是Oracle PL/SQL中的一种批量操作语句,用于同时执行多个DML操作(如插入、更新、删除)。

在FORALL语句执行完毕后,可以通过SQL%ROWCOUNT来获取实际进行了多少次插入操作。SQL%ROWCOUNT是一个特殊的PL/SQL变量,它返回最近一次SQL语句所影响的行数。

以下是一个示例代码,演示了如何输出在FORALL语句中进行了多少次插入操作:

代码语言:txt
复制
DECLARE
  TYPE emp_tab_type IS TABLE OF employees%ROWTYPE;
  emp_tab emp_tab_type;
BEGIN
  -- 初始化emp_tab数组
  emp_tab := emp_tab_type();
  
  -- 添加要插入的数据到emp_tab数组中
  emp_tab.EXTEND(3);
  emp_tab(1).employee_id := 1001;
  emp_tab(1).first_name := 'John';
  emp_tab(1).last_name := 'Doe';
  emp_tab(2).employee_id := 1002;
  emp_tab(2).first_name := 'Jane';
  emp_tab(2).last_name := 'Smith';
  emp_tab(3).employee_id := 1003;
  emp_tab(3).first_name := 'Mike';
  emp_tab(3).last_name := 'Johnson';
  
  -- 使用FORALL语句批量插入数据
  FORALL i IN 1..emp_tab.COUNT
    INSERT INTO employees(employee_id, first_name, last_name)
    VALUES(emp_tab(i).employee_id, emp_tab(i).first_name, emp_tab(i).last_name);
  
  -- 输出插入操作的次数
  DBMS_OUTPUT.PUT_LINE('插入了 ' || SQL%ROWCOUNT || ' 条记录。');
END;

在上述示例中,首先定义了一个emp_tab数组,用于存储要插入的数据。然后使用FORALL语句批量插入数据。最后通过DBMS_OUTPUT.PUT_LINE输出插入操作的次数,即SQL%ROWCOUNT的值。

请注意,这只是一个简单的示例,实际情况中可能会有更复杂的逻辑和数据操作。此外,对于其他类型的DML操作(如更新、删除),也可以使用类似的方式获取SQL%ROWCOUNT的值。

推荐的腾讯云相关产品:腾讯云数据库(https://cloud.tencent.com/product/cdb)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

批量 SQLFORALL 语句

PL/SQL而言,任何的PL/SQL块或者子程序都是PL/SQL引擎来处理,而其中包含的SQL语句则由PL/SQL引擎发送SQL语句转交到SQL引擎来处 理,SQL引擎处理完毕后向PL/SQL...Pl/SQLSQL引擎之间的通信则称之为上下文切换。过多的上下文切换将带来过量的性能负载。 因此为减少性能的FORALL与BULK COLLECT的子句应运而生。...三、SAVE EXCEPTIONS          对于任意的SQL语句执行失败,将导致整个语句或整个事务会滚。...而使用SAVE EXCEPTIONS可以使得在对应的SQL语句异常的情形下,FORALL 仍然可以继续执行。如果忽略了SAVE EXCEPTIONS时,当异常发生,FORALL语句就会停止执行。...ERROR_INDEX字段会存储发生异常的FORALL语句的迭代编号,而ERROR_CODE则存储对应异常的ORACLE错误代码。

1.7K20

plsql中的forall简单测试(r5笔记第63天)

http://blog.itpub.net/23718752/viewspace-1289696/ 其实不光是bulk collect,forall对于pl/sql的性能的提升也是相当大的。...可以参见下面的两个图,可以看到其实在pl/sql中,可能很多时候我们所写的pl/sql代码会在sql引擎和plsql引擎建进行上下文的切换,这个过程还是很耗费时间的。 ?...而forall却是相反,是提供一次上下文切换,会在forall的过程中进行数据的包装处理。一次发送给sql执行器去处理,大大减少了上下文切换时间。 ?...n1@TEST11G> exec test_proc; this is a test PL/SQL procedure successfully completed....后续会使用dbms_profiler来对此测试一下,可以看出在一些实现点中还是存在着很大的不同。

725110

【PLSQL编程基础】

PL/SQL编程基础】 语法: declare 声明部分,例如定义变量、常量、游标 begin 程序编写,SQL语句 exception 处理异常 end; / 正斜杠表示执行程序快...DBMS_OUTPUT.put_line(v_ename); end; / 变量的声明和使用 PLSQL是一种强类型的编程语言,变量名前加v表示变量 语法: 所有的变量都要求在declare部分之中进行.../SQL分支语句 if/else 循环: loop: 语法: loop exit when 循环结束条件 end loop while() loop end loop; for: for...批量处理: 使用for in:(更新n次) for xx in 集合 first..last loop end loop 2、使用forall:(批处理更新数据) 语法: forall...批量接收数据: bulk collect into 子程序: 目标 1、掌握子程序的分类 包含存储过程和函数 定义过程: 专门定义一组sql语句集 语法: 过程=声明+plsql快 CREATE [OR

81840

PLSQL和SQLPLUS查询结果不一样——千万别忘记commit

今天在PLSQL的SQL Window中执行了一个查询select * from t_user;  查询到6条记录:         后来为了方便测试其他的数据,打开了sqlplus,执行了相同的查询语句...,意外发生了:        只查询到一条记录,你没看错,同样的用户,同样的sql语句,同样的时间,在PL/SQL和SQLPLUS中的查询结果不一样。...于是回想到问题多半就出在那个查询到6条数据的PL/SQLsql窗口了。...这时发现在它里面执行查询select * from t_user;之前,还曾插入了5条记录        原来,与之前用过的SQL Server和MySQL有所不同,在操作oracle时,对数据进行了操作后...这时,在这个插入5条数据的sql窗口中执行commit命令,数据就真正意义上的插入到数据库物理文件中了!

86130

PLSQL和SQLPLUS查询结果不一样——千万别忘记commit !

后来为了方便测试其他的数据,打开了sqlplus,执行了相同的查询语句,意外发生了: ?        ...只查询到一条记录,你没看错,同样的用户,同样的sql语句,同样的时间,在PL/SQL和SQLPLUS中的查询结果不一样。于是不甘心啊,又开了n个sqlplus窗口,执行结果都是只查询到一条记录。...于是回想到问题多半就出在那个查询到6条数据的PL/SQLsql窗口了。这时发现在它里面执行查询select * from t_user;之前,还曾插入了5条记录: ?        ...原来,与之前用过的SQL Server和MySQL有所不同,在操作oracle时,对数据进行了操作后,这些操作都只是提交到了内存,并没更新物理文件,最后如果需要更新到物理文件,需要执行commit命令。...这时,在这个插入5条数据的sql窗口中执行commit命令,数据就真正意义上的插入到数据库物理文件中了!

1.5K20

层层升入:SQL极限调优之一次更新操作的N种优化可能

杨廷琨,网名 yangtingkun 云和恩墨技术总监,Oracle ACE Director,ACOUG 核心专家 最近进行了一次更新操作,整个处理和优化的过程很有意思,于是将这个过程记录了下来。...不使用临时表主要出于两点考虑:一是由于需求本身很简单,写SQLPL/SQL最多也就十几行语句而已,为这么简单的需求建立一个临时表没有太大必要;另外一点是由于当前数据库版本为9204,在这个版本中,以INSERT...INTO SELECT方式插入临时表存在Bug。...已用时间: 00: 00: 01.10 这是最简单的思路,但是要通过PL/SQL来实现,而且是两条UPDATE语句,此外效率还有点低:对于测试的例子来说,只有几万条记录,而更新就用了44秒。...已用时间: 00: 00: 00.12 通过运用PL/SQL减少远端对象的访问次数并利用FORALL进行批量更新。UPDATE语句的执行时间已经从原来的50多秒优化到了0.35秒。

1.1K80

PLSQL编码规则

所有工作都独自完成     我们很少有人是孤立工作的;大多数PL/SQL开发工作是在相对较大的机构中进行的。但我们基本上还是在自己的小隔间里用自己的设备独自工作。...对于PL/SQL开发人员来说,这是一个奇特的建议,因为PL/SQL的主要优点之一就是可以毫不费力地在代码中编写SQL语句。不过,这种简易性也是这种语言的一个致命的弱点。    ...可以将纯粹的SQL语句直接置于PL/SQL代码中,而无需JDBC或ODBC之类的中间层。因此,无论何时何地,PL/SQL开发人员只要需要SQL语句,他们通常就会向其应用程序代码中嵌入SQL语句。...这直接在SQL语句中包含了执行商务规则的逻辑。这些规则总在变化,所以应用程序的维护成本会急剧增加。     当然,你要编写的每一个PL/SQL应用程序几乎都是基于基础表和视图的。你需要执行SQL语句。...将显示PL/SQL语句灌入SQL代码很容易,同样,谈论封装这些语句如何重要也不费劲。但另一方面,编写执行封装任务的代码却具有挑战性;甚至是不现实的。生成这些包或许更有意义。

1K20

【DB笔试面试581】在Oracle中,绑定变量是什么?绑定变量有什么优缺点?

这里的同一类型的SQL语句指的是除SQL文本中对应的输入值不同外其它部分都一模一样的SQL语句。例如,银行的查询余额的SQL语句,在成千上万次查询中都只是账户名不同,而SQL语句的其它部分都一样。...l 对于OLAP和OLTP混合型的应用系统,如果有循环,不管这个循环是在前台代码还是在后台PL/SQL代码中,循环内部的SQL语句一定要使用绑定变量,并且最好是使用批量绑定:至于循环外部的SQL语句,可以不使用绑定变量...在PL/SQL中通过批量绑定的方式使用绑定变量。 PL/SQL中的“批量绑定”是一种优化后的使用绑定变量的方式。...SQLFORALL及BULK子句的使用)?】。...本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。

2.5K20

Oracle笔记

1.Oracle内容介绍:   (1)基本部分:oracle基本使用、用户管理、表管理   (2)高级部分:表的查询、权限和角色、函数、PL/SQL编程、数据库管理、索引,约束       和事务...当执行了commit语句子后,会确认事务      的变化、结束事务、删除保存点、释放锁,当使用commit语句结束事务子后,其它会     话将可以查看到事务变化后的新数据。...54.pl/sql块基本构成:   (1)定义部分:declare--定义常量、变量、游标、例外、复杂数据类型   (2)执行部分:begin--要执行的pl/sql语句sql语句   (3)例外处理部分...主要包括pl/sql记录,pl/sql          表,嵌套表,varray。...:      if --then--elsif--else语句 65.循环语句 --loop        是pl/sql中最简单的循环语句,这种循环语句以loop开头,以end up结尾,这种

1.3K20

MyBatis操作Oracle批量插入 ORA-00933: SQL 命令未正确结束

最近在使用MyBatis操作Oracle数据库的时候,进行批量插入数据,思路是封装一个List集合通过Myabtis 的foreach标签进行循环插入,可是搬照Mysql的批量插入会产生 异常 ###...Integer), 1(String), 1111.0(Double), 2(String), 11(Integer), 3(String), 1111.0(Double), 2222(String) 即使在pl.../sql上执行该语句依旧会报错!...这样分析大概就是Oracle语法的问题了 首先在度娘上找了MyBatis 之foreach插入的相关资料 具体如下:         foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合...又查了MyBatis操作Oracle的相关资料 得到结论:在Oracle的版本中,有几点需要注意的:         1.SQL中没有VALUES;         2.

2.9K20

Oracle使用总结之异常篇

任何ORACLE错误(报告为ORA-xxxxx形式的Oracle错误号)、PL/SQL运行错误或用户定义条件(不一写是错误),都可以。...1.1 异常处理概念 异常情况处理(EXCEPTION)是用来处理正常执行过程中未预料的事件,程序块的异常处理预定义的错误和自定义错误,由于PL/SQL程序块一旦产生异常而没有指出如何处理时,程序就会自动终止整个程序运行.../SQL块的ORACLE错误或由PL/SQL代码的某操作引起的错误,如除数为零或内存溢出的情况。...用户自定义异常由开发者显示定义,在PL/SQL块中传递信息以控制对于应用的错误处理。 每当PL/SQL违背了ORACLE原则或超越了系统依赖的原则就会隐式的产生内部异常。...因为每个ORACLE错误都有一个号码并且在PL/SQL中异常通过名字处理,ORACLE提供了预定义的内部异常。如SELECT INTO 语句不返回行时产生的ORACLE异常NO_DATA_FOUND。

2K60

第79篇:记一次Oracle注入漏洞提权的艰难过程

Part2 技术研究过程 加快sqlmap注入过程 由于这个注入点是盲注的,需要通过折半法一个字符字符的猜解,然后又是搜索型的,所以导致注入速度特别慢,所以ABC_123进行了两方面优化,加快sql注入的速度...这里ABC_123直接用一个简单的语句替代:效果比上述语句赋予的权限更多,效果更好。其中需要注意的是,BEGIN开头,然后end;结尾,代表一个PL/SQL语句块。...开始手工注入 Oracle一般都是支持多语句的,我将SQL注入语句行了如下修改,通过and ( 插入sql语句 ) is not null的方式,在左右括号中可以插入各种Oraclesql语句,这种形式非常方便...Oracle的java执行权限问题 于是我首先认为是java权限没有添加成功,于是我执行了如下语句: select granted_role from user_role_privs 发现当前用户有3个权限...The PL/SQL to grant this is dbms_java.grant_permission( 'TEST111', 'SYS:java.io.FilePermission', '<<ALL

75910

对于Oracle兼容,我们手拿把掐

主论坛上,腾讯云数据库专家邹立贤受邀进行了《腾讯云TDSQL助力政企实现数据库国产化》的主题分享,主要包括TDSQL内核Oracle兼容能力、TDSQL驱动Oracle兼容能力和Oracle to TDSQL...国产数据库该如何去O? Oracle兼容性是一个系统性的工作,不能满足于简单的SQL语法/语义兼容,主要有引擎、生态工具两个方面。...PL/SQL语法兼容 PL/SQL语法兼容Oracle 存储过程、函数的创建,如:以IS作为PLSQL块定义开始、可以用/作为定义结束 存储过程、函数支持COMMIT、ROLLBACK事务控制 兼容游标属性支持...:isopen、found、notfound、rowcount 函数、存储过程支持OUT出参,打破原有限制 支持集合类型、包、CREATE TYPE 其他PL语句支持,如:BULK COLLECT、语句...TDSQL Pro*C功能兼容 支持了变量声明、建立连接、基础SQL语句、预编译语句、游标、简单动态 SQL、ANSI 动态 SQL、错误处理语句等8类场景,约24个语法用法的兼容 四、Oracle

1.9K20

Oracle 执行计划查看方法汇总及优劣比较

执行计划查看方法汇总及优劣比较 1)执行计划 执行计划是一条 SQL 语句Oracle 数据库中的执行过程或访问路径的描述。...确实啊,这毕竟都没有真正执行又如何得知真实运行产生的统计信息。...on 步骤2:在此处执行你的SQL 1.可以输出运行时的相关统计信息(产生多少逻辑读,多少次递归调用,多少次物理读的情况);2.虽然必须要等语句执行完毕后才可以输出执行计划,...关闭跟踪) 步骤4:找到跟踪后产生的文件 步骤5:tkprof trc文件 目标文件 1.可以看出SQL语句对应的等待事件 2.如果SQL语句中有函数调用,SQL中有SQL,都将会被列出,无处遁形;3....T PL/SQL procedure successfully completed.

1.2K31

plsqldev使用指南

下面介绍一下如何从Excel中提取文本插入到数据库中我们的Excel文件中有三列:在数据库中建立临时表:create table t1 (cino varchar2(100), contno varchar2.../SQL Developer记住登陆密码 在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码; 设置方法:PL/SQL Developer...(我的好像不行哦) 7、执行单条SQL语句 在使用PL/SQL Developer的SQL Window时,按F8键,PL/SQL Developer默认是执行该窗口的所有SQL语句,需要设置为鼠标所在的那条...8、查看执行计划 在使用PL/SQL Developer的SQL Window时,有时候输入的SQL语句执行的效率,分析下表结构,如何可以提高查询的效率,可以通过查看Oracle提供的执行计划; 使用方法...10、oralce精简客户端的使用 要想PL/SQL连接oracle数据库,除了PL/SQL Developer 之外还需要Oracle客户端,有一个更方便的方法就是使用Oracle精简客户端,很多地方可以下载

2K10
领券