电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

oracle_forall语句VIP免费

oracle_forall语句_第1页
1/10
oracle_forall语句_第2页
2/10
oracle_forall语句_第3页
3/10
FORALL 语句 FORALL 语句的一个关键性改进,它可大大简化代码,并且对于那些要在PL/SQL 程序中更新很多行数据的程序来说,它可显著提高其性能。 1: 用FORALL 来增强DML 的处理能力 Oracle 为Oracle8i 中的PL/SQL 引入了两个新的数据操纵语言(DML)语句:BULK COLLECT和FORALL。这两个语句在PL/SQL 内部进行一种数组处理 ;BULK COLLECT 提供对数据的高速检索,FORALL 可大大改进INSERT、UPDATE 和DELETE 操作的性能。Oracle 数据库使用这些语句大大减少了 PL/SQL 与 SQL 语句执行引擎的环境切换次数,从而使其性能有了显著提高。 使用BULK COLLECT,你可以将多个行引入一个或多个集合中,而不是单独变量或记录中。下面这个BULK COLLECT 的实例是将标题中包含 有"PL/SQL"的所有书籍检索出来并置于记录的一个关联数组中,它们都位于通向该数据库的单一通道中。 DECLARE TYPE books_aat IS TABLE OF book%ROWTYPE INDEX BY PLS_INTEGER; books books_aat; BEGIN SELECT * BULK COLLECT INTO book FROM books WHERE title LIKE '%PL/SQL%'; ... END; 类似地,FORALL 将数据从一个PL/SQL 集合传送给指定的使用集合的表。下面的代码实例给出一个过程,即接收书籍信息的一个嵌套表,并将该 集合(绑定数组)的全部内容插入该书籍表中。注意,这个例子还利用了Oracle9i 的FORALL的增强功能,可以将一条记录直接插入到表中。 BULK COLLECT 和FORALL 都非常有用,它们不仅提高了性能,而且还简化了为PL/SQL中的SQL 操作所编写的代码。下面的多行FORALL INSERT 相当 清楚地说明了为什么PL/SQL 被认为是Oracle 数据库的最佳编程语言。 CREATE TYPE books_nt IS TABLE OF book%ROWTYPE; / CREATE OR REPLACE PROCEDURE add_books ( books_in IN books_nt) IS BEGIN FORALL book_index IN books_in.FIRST .. books_in.LAST INSERT INTO book VALUES books_in(book_index ); ... END; 不过在 Oracle 数据库10g 之前,以 FORAll 方式使用集合有一个重要的限制:该数据库从 IN范围子句中的第一行到最后一行,依次读取集合的内容 。如果在该范围内遇到一个未定义的行,Oracle 数据库将引发 ORA-22160 异常事件: ORA-22160: element at index [N] does not ex ist 对于 FORALL 的简单应用,这一规则不会引起任何麻烦。但是,如果...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

oracle_forall语句

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部