我是靠谱客的博主 大意秀发,最近开发中收集的这篇文章主要介绍ABAP ——表类型分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

   最近看了一下ABAP的表类型相关知识,做一个自己的分析总结。

   ABAP的表类型似乎我感觉只应该有2种,而不是大家说的3种。 

从数据存储的原理上来看的。下面我做一个分析。

一般情况下,我们都说ABAP中有表有3种类型 :透明表 (transparent table)、簇表(cluster table)、 池表 (pool table)。

 先来说下什么叫做透明表(transparent table):透明表是一种和数据库具有相同结构的表存储结构,假设我在SAP系统中,使用SE11创建了一个CUSTOMER TABLE 那么我创建的结构是怎么样的,在数据库的存储结构就是怎么样的,但是在SAP中,当我们对透明表调整结构的时候,不需要我们对数据库表也进行调整,这是SAP的方便的特点之一,这里需要说明我们会经常遇到的一种情况:当我们删除一行时候,保存激活会没有问题,但是为什么我们修改一行的时候,例如把DATA ELEMENT改了,怎么就不让激活了呢。遇到这种凡是对DATA ELEMENT 改变的操作,我们需要保存,然后去SE14中激活,要不然就在SE11中整行删掉重建.

什么是簇表和表簇?CLUSTER TABLE 和TABLE CLUSTER.

这俩名词,刚开始学的时候,真实很折磨人,根本不知道啥意思。但是随着对知识的进一步积累,慢慢的有些眉目了,也感到了它存在合理性。

什么是簇表?我们可以很直观的理解为,在DATABASE (数据层),除了我们定义的主键,然后把其他的内容都当成表格的一个字段存起来。也就是说这个表的结构可以理解为:主键+ 一个存储功能的字段的 组合。

然而在其中还会有PAGENO的这个字段,这就是说,一行空间不够(32KB)用,在主键相通的情况下,继续细分,用来将属于一个主键的内容联系起来的字段1、2、3.。。。。

要理解簇表,首先自己创建一个瞧瞧吧。

SE11,首先创建一张透明表,透明表的名字一定要少于10位。

然后点击 UTILITES->OTHER DICTIONARY OBJECTS

自定一个名字少于10位的表簇。(table CLUSTER)

表簇和簇表的区别和联系?

表簇,是该表在DATABASE的存储结构,

簇表,是该表在SAP DICTIONARY展现在我们眼前的结构。

于是我们就会知道为什么我们不能用NATIVE SQL去访问 这个簇表了。因为我们在SAP中的看到的字段,在DATABASE 是不存在的,是通过转化的才显示在我们SAP DICTINARY中的结构。

恩,然后就是在SAP中我们想看到什么样的结构 就要在簇表中创建一个什么样的结构。

簇表都是由透明表转化成的,要创建簇表,首先就要创建一个透明表,这个透明表的显示结构,就是我们想想在簇表中显示的结构,然后在SE11 进去看观看此透明表状态并且处于修改状态,点击EXTRAS -> CHANGE

table category. 选最后一个 (RADIO BUTTON) 复制簇表的选项,是个小对勾,这个点完了,系统会自动跳到SE11的界面,好像什么也没有发生。这时候我们去DELIVERY AND  MAINTENANCE标签下面看,就会出现了一个POOL/CLUSTER的文本框,填入我们创建的表簇。激活保存。就搞定了。

注意,这里我们要在表簇中 手工将VARKEY 删掉,换成我们表的要显示的主键, 表簇主键为我要显示主键的子集。

而表池创建后激活就可以了。然后进入透明表CHANGE TABLE CATEGORY 中点第三个么再进去DELIVERY AND  MAINTENANCE中 填入 表池,激活。

池表和簇表的创建过程相同。

但是池表和簇表还是有区别的。

INSERT 透明表 INTO 簇表。 只要透明的簇表的主键都在透明表里面就行。就是透明表主键多了也无所谓。

INSERT 透明表 INTO 池表. 透明表和池表的主键必须相同的。

池表和簇表的存储原理相同的。

所以我感觉,对于从原理上来分析,我们只需要将SAP 的表分成2类就OK了。

最后

以上就是大意秀发为你收集整理的ABAP ——表类型分析的全部内容,希望文章能够帮你解决ABAP ——表类型分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部