从表传输修改dbtab

2020-09-20 23:52发布

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

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


似乎没有办法从内部表中仅修改某些字段来修改数据库表。

在内部表中循环并执行数千条MODIFY命令似乎很可惜。 或者,如下所示,遍历itab并从数据库加载我们要保留的数据(例如字段"哈希")。

有没有更优雅的解决方案?

"从外部系统加载零件
 DATA(lt_part)= ycl_hybris_api => part_list(
   属性='galleryImages,代码,创建时间,修改时间'
   sort ='代码'
 )。
 检查lt_part是否不初始化。

 "将所有时间戳设置为现在
 数据ls_part类型y00_hyb_parts。
 ls_part-loaded = ycl_date => timestamp()。
 修改ls_part从ls_part装入TRANSPORTING,而装入是INITIAL。

 "我们需要保留旧的HASH值
 在lt_part分配字段符号()处循环播放。
   从y00_hyb_parts中选择单个散列到的对应字段中,其中matnr = ls_part-matnr。
 结局。

 缓存结果
 从表lt_part传输中修改y00_hyb_parts。
 提交工作并等待。
 

(33.9 kB)

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

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


似乎没有办法从内部表中仅修改某些字段来修改数据库表。

在内部表中循环并执行数千条MODIFY命令似乎很可惜。 或者,如下所示,遍历itab并从数据库加载我们要保留的数据(例如字段"哈希")。

有没有更优雅的解决方案?

"从外部系统加载零件
 DATA(lt_part)= ycl_hybris_api => part_list(
   属性='galleryImages,代码,创建时间,修改时间'
   sort ='代码'
 )。
 检查lt_part是否不初始化。

 "将所有时间戳设置为现在
 数据ls_part类型y00_hyb_parts。
 ls_part-loaded = ycl_date => timestamp()。
 修改ls_part从ls_part装入TRANSPORTING,而装入是INITIAL。

 "我们需要保留旧的HASH值
 在lt_part分配字段符号()处循环播放。
   从y00_hyb_parts中选择单个散列到的对应字段中,其中matnr = ls_part-matnr。
 结局。

 缓存结果
 从表lt_part传输中修改y00_hyb_parts。
 提交工作并等待。
 

(33.9 kB)
付费偷看设置
发送
3条回答
bbpeas
1楼-- · 2020-09-21 00:28
更新y00_hyb_parts SET已加载=无论在何处... 
me_for_i
2楼-- · 2020-09-21 00:48

我知道的唯一方法是将现有数据提取到Itab中,更新所需的信息,然后进行更新。 您可能可以使用UPDATE ... FROM TABLE VALUE#(...)...做一些真正想做的事情,但这是最简单的:

 SELECT *从y00_hyb_parts INTO TABLE @data(staging_table)在...中。
    ..."将更新合并到staging_table
 从TABLE staging_table更新y00_hyb_parts。
 

xfwsx85
3楼-- · 2020-09-21 00:49

由于MODIFY可以用作INSERT,因此仅传输部分字段是没有意义的

迈克的答案是正确的。

一周热门 更多>