首页 | 新闻资讯 | 考试认证 | Windows | Linux | Vista | UNIX/BSD | 黑客技术 | 平面设计 | 网页制作 | 网站建设 | 服务器 Web | FTP | SQL | 网络协议 | 交换技术 | 路由技术 | 网络组建 | 无线技术 | 求职招聘 | 病毒播报 | ERP | 网站推广 | 网站优化 | 建站心得 | 建站教程 | 论坛 |
华夏网管站-凝聚网管力量
热门关键字: 系统安装盘  emcorp  vxcbx  怎么布线
首页 Oracle入门 资讯动态 考试认证 安装配置 PL/SQL 性能调优 备份与恢复 体系架构 Oracle开发
您现在的位置: |主页>Oracle>PL/SQL>正文

Oracle 10g中用FIRALL处理非连续数组

在PL/SQL循环中执行数据操作语言(DML)是一件费时的工作,因为每次循环都要由PL/SQL引擎转向SQL引擎。应用FORALL是一个更好的方法,它一次性向SQL语句提交一组临时值。

    在 10g前,FORALL语句的语法只能处理连续性的数组元素: 网管Www.ofAdmin.Com

FORALL index_name IN lower_bound ..upper_bound sql_statement;

IT技术社区bbs.ofAdmin.Com

    这意味着:在以前,使用FORALL的嵌套表不能删除待处理数组中间的元素,而且数组项必须进行连续处理。 10g解决了这两方面的问题,并增加了INDICES OF和VALUES OF子句。

华夏网管Www.ofAdmin.Com

    INDICES OF子句替代lower_bound ..upper_bound,说明所有要处理的有效索引值,即使这些值之间存在间隔。就像是这样:

华夏网管ofAdmin.Com

FORALL index_name IN INDICES OF collection_name BETWEEN lower_bound AND upper_bound sql_statement;
网管网ofAdmin.Com

    您仍然可以应用BETWEEN语法限制要处理的范围,这是一个可选的内容。 IT技术社区bbs.ofAdmin.Com

    VALUES OF子句帮助您以不同顺序处理主要的集合。您再建立另一个集合,其中只包含您要处理的索引号码,这些号码以您希望处理的顺序排列。然后该语句变为: 网管Www.ofAdmin.Com

FORALL index_name IN VALUES OF index_collection sql_statement;
网管Www.ofAdmin.Com

    列表A中是一个应用HR样本模式的例子。我将部门名称加载到内存中的一个嵌套表内,然后在里面搜索与IT有关的部门。每搜索到一个,我保存它的表输入项索引。VALUES OF子句结合这组索引对表中的每个部门进行INSERT语句处理。(这只是一个示例;用一个单独的SQL语句也可以进行同样的处理。)列表B中是输出结果。 华夏网管论坛bbs.ofAdmin.Com


Tags: 责任编辑:「在路上」

上一篇:数据库应用程序常见T-SQL和PL/SQL
下一篇:sequence与会话有关--oracle一个比较烂的特性

 热点关注

 ·被关在SQL外面破解SA的密码的方法具
 ·在ORACLE里设置访问多个SQL Server数
 ·如何用Oracle的SQL工具创建HTML页面
 ·.NET框架下从Oracle到SQL Server的迁
 ·浅析如何掌握了解SQL Server的锁机制
 ·如何创建SQL Server 2000 故障转移群
 ·如何由Sybase向SQL Server移植数据库
 ·Oracle 专业人员使用的SQL Server 20
 ·动态SQL和PL/SQL的EXECUTE IMMEDIATE
 ·Visual C#的SQL Server编程
 今日更新
 24小时热门信息