ABAP基础(五)
? 內(nèi)表<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 什么是內(nèi)表 內(nèi)表是一個數(shù)據(jù)對象,在運行時內(nèi)表可保存多個相同結(jié)構(gòu)的數(shù)據(jù)行數(shù)是動態(tài)的,系統(tǒng)可實時增加內(nèi)表的大小。 ?????????? ? 內(nèi)表的屬性
?
–???????? 幾種數(shù)據(jù)表的訪問:分為索引訪問,鍵訪問 –???????? 三種表的類型: 標(biāo)準(zhǔn)表,排序表,哈希表 ?????????? 內(nèi)表的定義?
TYPES|DATA? itab {TYPE|LIKE}? tabkind OF {linetype|lineobj} ????????????????????????? [WITH key] ????????????????????????? [INITIAL SIZE n] . –???????? tabkind? 內(nèi)表種類 –???????? linetype? 行類型 –???????? key? 表關(guān)鍵字 –???????? n?? 初始內(nèi)存大小 –???????? 內(nèi)表類型(一) –???????? 標(biāo)準(zhǔn)表 STANDARD TABLE ??? 具有邏輯索引 ??? 尋址操作通過關(guān)鍵字或者索引 –???????? 排序表 SORTED TABLE ??? 具有邏輯索引 ??? 尋址操作通過關(guān)鍵字或者索引 ??? 按表關(guān)鍵字升序后存儲 –???????? 哈希表 HASHED? TABLE ??? 沒有邏輯索引 ??? 尋址操作只通過關(guān)鍵字 ?????????? 行類型 基本類型?? 結(jié)構(gòu)體?? 內(nèi)表 ?????????? 表關(guān)鍵字 –???????? 行結(jié)構(gòu)為結(jié)構(gòu)體 ??? WITH [UNIQUE|NON-UNIQUE] KEY comp1 … compn –???????? 行結(jié)構(gòu)為基本類型 ??????????????????? ? WITH [UNIQUE|NON-UNIQUE] KEY TABLE LINE –???????? 不指定關(guān)鍵字 ?? ??????????????? ??WITH [UNIQUE|NON-UNIQUE] DEFAULT KEY ?????????? 初始內(nèi)存大小 INITIAL SIZE? n?
創(chuàng)建一個內(nèi)表 ?????? TYPES:? BEGIN OF address, ????????????????? street(20)?? TYPE? C, ????????????????? city(20)????? TYPE? C, ?????????? ????END OF? address. DATA:? BEGIN OF company, ????????????????? name(20)?? TYPE? C, ????????????????? address????? TYPE? address, ?????????????? END OF? company. DATA itab_company LIKE HASHED TABLE OF company ?????????????? WITH UNIQUE KEY name.??
l?????? 內(nèi)表操作(一) l?????? 操作內(nèi)表行 插入行? INSERT語句 ??? 插入單行 ??????? INSERT line INTO itab INDEX idx . ??? 插入多行 ??????? INSERT LINES OF itab1 [FROM n1] [TO n2] ????????????????????? INTO [TABLE]? itab2 [INDEX idx].? –???????? 附加行? APPEND語句 ??? 附加單行 ???????? APPEND? line TO? itab . ??? 附加多行 ????????????? ? APPEND LINES OF itab1[FROM n1] [TO n2] TO itab . –???????? 讀取行? READ語句 ??? 利用索引讀取 ???????? READ itab INTO wa INDEX idx . ??? 利用關(guān)鍵字讀取 ???????? READ TABLE itab FROM key INTO wa . 修改行? MODIFY語句 ??? 根據(jù)索引修改 ???????? MODIFY itab [FROM wa] [index idx] ??????????????????? ??????[TRANSPORTING f1 f2 …] . ??? 根據(jù)關(guān)鍵字修改 ???????? MODIFY TABLE itab FROM wa ????????????????????????? [TRANSPORTING f1 f2 …] . ??? 修改多行 ???????? MODIFY itab FROM wa TRANSPORTING f1 f2 … ????????????????????????? WHERE cond . ?????? 刪除行? DELETE語句 ??? 通過索引刪除 ?? ??????DELETE itab INDEX idx . ??? 通過關(guān)鍵字刪除 ???????? DELETE TABLE itab FROM wa . ???????? DELETE TABLE itab WITH TABLE KEY k1=f1 …? ki=fi. ??? 刪除多行 ???????? DELETE itab [FROM n1] [TO n2] [WHERE<condition>] –???????? ??? 循環(huán)處理結(jié)果集合? LOOP語句 ????????????? Loop語句一條條的讀出的數(shù)據(jù)行,寫入INTO字指定的結(jié)構(gòu)中,結(jié)構(gòu)內(nèi)容可用于輸出或?qū)懟貎?nèi)表.?
LOOP AT itab [INTO wa] [FROM n1] [TO n2] ???????????????????????????????????????????????????????????????? [WHERE<condition>]. ??????? <statement block> ???? ENDLOOP ??????????????
?
l?????? 表工作區(qū) ?????????? 創(chuàng)建表工作區(qū): –???????? Tables t_name. ?????? DATA: begin of t_name, ?? ???????? ?F1 type c , ?????? ?????? Endt_name.?
表工作區(qū)就是其他語言的結(jié)構(gòu),象自定義的一個類型一樣,但一旦創(chuàng)建一個內(nèi)表之后,工作區(qū)就成了外界跟內(nèi)表的交流口,每條記錄的進(jìn)入和取出都得通過它,并且清除它們的時候分開來清除.轉(zhuǎn)載于:https://blog.51cto.com/youxue/47979
總結(jié)
- 上一篇: 使用VMware Server迁移证券公
- 下一篇: DotNet语音技术实现(实现电脑发音)