首页  韩国资源  酷站加油  我的展厅  设计名站  古典元素  推荐下载  设计欣赏  每周专访  招募精英  人才专区  网页教程  平面设计  编程开发  设计竞赛
当前位置:首页 > 编程开发 > 数据库编程 > 正文
Google
讲解使用文字下标简化PL/SQL的技巧
来源:赛迪网 2008年01月24日 09:50 网友评论:0条 点击:

以前称为INDEX BY表格的联合数组就一直是PL/SQL的一项功能。它们是稀松数组,这意味着它们只存储所装载的元素,不会为中间目录值保留空间。然而,它们的一个原始局限在于下标(即INDEX BY的“目录”)必须为整数。

Oracle 9i第2版扩充了这一功能,允许以文字为下标。这使得联合数组更像是其它语言,如Perl中的杂凑表格。

为说明文字字符串可成为目录值,简单使用INDEX BY VARCHAR2(用最大长度完成),不要使用惯常的INDEX BY BINARY_INTEGER。下面是一个实例:

TYPE counters_type IS TABLE OF BINARY_INTEGER
INDEX BY VARCHAR2(20);
region_counts? COUNTERS_TYPE;
 
要处理联合数组的单个元素,使用一个VARCHAR2变量或文字作下标。下面的语句更新了region_counts的一个元素。

region_counts('Southwest') := region_counts('Southwest') + 1;
 
要遍历一个联合数组的所有元素,使用集合方法.FIRST、 .NEXT('key')、 .PRIOR('key')和.LAST,如下面的代码所示(假定v_sub以前声明为VARCHAR2)。

v_grand_total := 0;
v_sub := region_counts.FIRST;
WHILE v_sub IS NOT NULL LOOP
v_grand_total := v_grand_total + region_counts(v_sub);
v_sub := region_counts.NEXT(v_sub);
END LOOP;
 
直接使用文字可简化你的代码。在前面的版本中,程序可能使用一个两列的INDEX BY数组:一列存储地区名称,另一列存储总数量。为更新计数器,代码首先在第一列中搜索地区代码。一旦发现正确的下标,它将更新总数列中的对应项目。

列表A说明了上述联合数组技巧。它声明一个叫做counters_type的数组类型,然后建立一个那种类型的称做region_counts的实例。增加数据、进行更新、并继续用文字作下标进行处理。

即使一个联合数组能够使用集合方法,它也不能像嵌套表格一样作为列存储在数据库中。在PL/SQL程序中,当决定用哪种集合类型进行临时存储时,请务必要记住这一点。 

上一篇:有关SQL Server的几个简单示例   下一篇:如何保护MySQL数据库中的重要数据
收藏此页】【打印】【关闭
 相关文章  我要点评
·SQL 2005 express远程访问和sa密码的问题
·4款文字主题矢量素材
·删除SQL Server日志的具体方法
·在SQL Server数据库中导入导出数据
·MySQL数据库只监听某个特定地址的方法
·SQL Server开发中常见的十个问题:
·SQL Server数据库查询优化的方法总结
·用Photoshop极坐标打造放射文字效果

免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有任何异议,请联络:68design#163.com
转载要求:作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印。



关于我们 | 在线反馈 | 广告报价 | 友情链接 | 联系我们 | 免责声明 | 在线投稿 | 网站地图
Copyright © 2003-2007 68design.net, All Rights Reserve 【找网页设计师,当然上网页设计师联盟】