SAP表DD02L列出了SAP中的每个表,以及每个表中的字段数量。例如,表PLPO (PM任务列表)包含244个字段,根据T-Code S_PH0_48000138。对于业务报告和使用SQL,我最多只希望看到5,6个字段值,但整个表被复制,所有244个字段!
我想知道有多少透明表包含超过20个字段。如果我运行上面的t-code,我将花费10年的时间,一次处理一个表。
Mike麦克纳利
我不是一个有经验的ABAPer,所以我不知道如何设置这个。
表DD02L是"一个SAP中所有表的列表。我没有在这个表中找到任何字段,这将告诉,实际表有多少字段。
可以使用的是表DD03L (SAP表字段),它列出了SAP中的所有字段和表。字段按位置列出,这意味着我们可以选择位置为21的字段存在的所有表(位置21存在=表中有超过20个字段):
SELECT FROM dd02l
INNER JOIN dd03l
ON dd02l~tabname EQ dd03l~tabname AND
dd02l~as4local EQ dd03l~as4local AND
dd02l~as4vers EQ dd03l~as4vers
FIELDS dd02l~tabname
WHERE dd02l~tabclass EQ 'TRANSP' "only transparent tables
AND dd03l~position EQ '0021'
INTO TABLE @DATA(lt_dd02l).
结果(内部表lt_dd02l)将包含所有字段超过20个的表。我目前使用的是R/3系统,查询只花了几秒钟,但仍然有超过12000个表,超过20个字段。
*在Gert Beukema的评论后编辑的答案(见下文)