浏览 1663 次
锁定老帖子 主题:个人浅见之内表的应用
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-06-19
1.内表种类:
.标准表,表类型为关键字STANDARD TABLE,系统为该表的每一行生成一个逻辑索引。填充标准表时,可以讲数据附加在现有行之后,也可以插入到指定的位置,程序对内表行的寻址操作可以通过索引或者关键字,另外,在对表进行插入,删除等操作时,个数据行在内存中的位置不变,系统仅重新排列个数据行的索引值。 .排序表,表类型关键字为SORTED TABLE,也具有一个逻辑索引,不同之处在于排序表总是按其关键字生序排列以后再存储,其访问方式与标准表相同。 .哈希表,表类型关键字为HASHED TABLE,没有索引,只能通过关键字来访问,系统用哈希算法管理表中的数据,因而其寻址一个数据行的时间与表的大小无关。 2.表关键字 .如果内表行是结构体,则可以指定结构体中的某几个字段作为内表关键字,该字段不能是内表或者引用类型,但可以是嵌套体。 .如果内表的整个行都是由基本类型字段组成,则可以把内表整行指定为关键字。 .如果不指定任何关键字,则可以使用默认的标准关键字,该选项为默认选项。 扁平结构内表的默认表关键字是非数字和非内表的组件字段,举例来说,一个内表有字段姓名(c类型),年龄(n类型)和工资(f类型),则默认的关键字为姓名和年龄。如果内表的整个行都是单个基本类型组成,则默认关键字为整个行,如果内表字段含有内表类型字段,则没有默认关键字。 3.UNIQUE/NON-UNIQUE 选项UNIQUE|NON-UNIQUE决定内表是否允许存在相同关键字的记录,即如果指明为UNIQUE KEY,则通过表关键字能够唯一确定内表的行记录,在程序中不能插入具有相同关键字的多行记录; 1.标准表只能指定为NON-UNIQUE,可以不指定,不指定默认就是NON-UNIQUE。 2.排序表可以为UNIQUE,也可以为NON-UNIQUE. 3.哈希表只能是UNIQUE,其必须指定UNIQUE关键字,如果允许相同的关键字记录,则hash值就相同,所以只能是UNIQUE,不允许重复的关键字存在。 REPORT ZTCXHTEST_INTERNAL_TABLE. TYPES: BEGIN OF address, street(20) TYPE c, city(20) TYPE c, END OF address. DATA: BEGIN OF company, name(20) TYPE c, addresses TYPE address, END OF company. DATA: itab_company LIKE HASHED TABLE OF company WITH UNIQUE KEY name. DATA: itab_company_sorted LIKE SORTED TABLE OF company WITH UNIQUE KEY name. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |