如何删除动态内部表的列?

2020-09-18 15:53发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我是一名Java...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我是一名Java开发人员,我在ABAP中没有任何经验。 但是在ABAP中已经为我分配了一项任务。 我需要创建一个动态内部表,该表必须包含数据库表的所有列,但是根据要求,我必须在创建后删除动态表的某些列。 问题是动态表应该与我已经完成的数据库表的所有列一起创建。 但是现在我必须删除一些列在字符串中的列。 我不知道该怎么做。

5条回答
SAP浪
2020-09-18 16:48

嗨,麦克,

我有一个Java程序,它将调用一些RFC并传递表名及其元数据信息。 在abap方面,我将使用数据库表的所有列创建一个动态表。 现在,无论我通过Java传递的是什么列,我都将这些列保留在动态表中,其余的列将删除。 之后,我将打开一个游标,并从数据库表中获取所有数据,并将其存储在动态表中,对于将要存储在动态表中的每一行,我将通过计算将这一行放入流水线缓冲区中并发送该缓冲区 通过HTTP_SEND访问Java程序。

之前,我仅使用必需的列创建了动态表,并且我的程序运行良好。 我们将其用于所有系统,例如:sap netweaver 7.5,g00等。

现在,树液添加了一些新的数据类型,例如:DF34_RAW,DF16_RAW,DF34_DEC,DF16_DEC。 netweaver 7.5仅支持这些数据类型。 现在,如果我通过使用CL_ABAP_ELEMDESCR => GET_DECFLOAT16()和CL_ABAP_ELEMDESCR => GET_DECFLOAT34()创建具有这些数据类型的动态表,则它将在netweaver 7.5系统上正常运行,但不适用于g00系统或其他系统。 因为GET_DECFLOAT16()方法不适用于g00或其他系统。

所以现在我要通过使用cl_abap_typedescr => describe_by_name(TABLENAME)创建动态表

它将数据库表的所有结构和所有列分配给动态表。 在游标中,我们有一些WHERE子句,因为该游标无法将所有列都保留在动态表中。 我们只需要保留必需的列,其余的列我必须删除。

我有要删除的列的列表,但我不知道如何删除这些列?

一周热门 更多>