javaGrowing

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  92 随笔 :: 33 文章 :: 49 评论 :: 0 Trackbacks

1.      内表的类型及定义:

1 .ANY TABLE :即任意表类型,此种定义方式只能在传递参数的时候定义。

      例如: FORM XXX USING/CHANGING TYPE ANY TABLE .

2 .ANY TABLE 包括了两种类型: INDEX TABLE HASHED TABLE

   1 .INDEX TABLE :包括了 STANDARD TABLE SORTED TABLE

A.      STANDARD TABLE :其实就是一个线性表,通过 key 访问内表是线性查找的,也就是说,随着表中记录的增加,对表的操作的时间开销也相应的增加。

定义方法: TYPES/DATA LIKE/TYPE STANDARD TABLE OF .

B.      SORTED TABLE: 顾名思义,表中的记录是按照一定的顺序排列的。访问表的主要方式是表中定义的 key ,如果 key 不唯一,则选择 index 最小的那个。也可以通过 index 来访问排序表,如果你想通过 index 插入一条记录,系统会自动检查你插入的位置是否正确。所以,如果插入的时间比插入到标准表的时间会长。因此,尽量选择 key 来对排序表进行操作。

定义方法: TYPES/DATA LIKE/TYPE SORTED TABLE OF .

2 .HASHED TABLE :对哈希表只能用你定义的 key 进行操作,而不能使用 index 进行操作。因此,定义哈希表必须定义 unique key 。注意:所有关于使用 index 操作表的语句都不能用于操作哈希表。例如: sort loop 等。

         定义方法: TYPES/DATA LIKE/TYPE HASHED TABLE OF .

2.      内表的操作:

1 . 创建:

      A. 定义一个结构,然后 type/like 这个结构

         例如:

TYPES: BEGIN OF ,
         ...
         igt; ...,
         ...
       END OF .

DATA  TYPE STANDARD TABLE OF
                 WITH NON-UNIQUE DEFAULT KEY
                 INITIAL SIZE
                 WITH HEADER LINE.

      B. type/like 系统表或者数据库表或者结构

DATA  TYPE STANDARD TABLE OF < 系统表名 >
                 INITIAL SIZE
                 WITH HEADER LINE.

2 . 添加数据:

      A APPEND :直接向表中添加数据

1. APPEND [wa TO|INITIAL LINE TO] itab[ASSIGNING |REFERENCE INTO dref].

2. APPEND LINES OF itab1 [FROM idx1] [TO idx2] TO itab2.

3. APPEND [wa TO] itab SORTED BY f [ASSIGNING

      B .向表中插入数据:

1. INSERT [wa INTO|INITIAL LINE INTO] itab [INDEX idx] [ASSIGNING |REFERENCE INTO dref].

2. INSERT [wa INTO|INITIAL LINE INTO] TABLE itab [ASSIGNING |REFERENCE INTO dref].

3. INSERT LINES OF itab1 [FROM idx1] [TO idx2] INTO itab2 [INDEX idx3].

4. INSERT LINES OF itab1 [FROM idx1] [TO idx2] INTO TABLE itab2.

      C .相同字段求和向表里添加:

Basic form

COLLECT [wa INTO] itab.

Extras:

1. ... ASSIGNING
2. ... REFERENCE INTO dref
3. ... SORTED BY f

3 . 删除数据:

1. DELETE itab.
2. DELETE TABLE itab WITH TABLE KEY k1 = v1 ... kn = vn.
3. DELETE TABLE itab [FROM wa].
4. DELETE itab INDEX idx.
5. DELETE itab FROM idx1 TO idx2.
6. DELETE itab WHERE logexp.
7. DELETE ADJACENT DUPLICATES FROM itab.

4 . 修改数据:

1. MODIFY itab [FROM wa] [INDEX idx] [ASSIGNING |REFERENCE INTO dref] [TRANSPORTING f1 ... fn].

2. MODIFY TABLE itab [FROM wa] [ASSIGNING |REFERENCE INTO dref] [TRANSPORTING f1 ... fn].

3. MODIFY itab [FROM wa] TRANSPORTING f1 ... fn WHERE cond.

posted on 2007-04-30 09:22 javaGrowing 阅读(724) 评论(0)  编辑  收藏 所属分类: sap

只有注册用户登录后才能发表评论。


网站导航: