如何循环和更新hana中的本地表?

2020-09-22 11:54发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家, 最近,我遇到一个问题,...

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

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


专家,

最近,我遇到一个问题,即在使用SQL脚本的计算视图中无法调用非读取过程,要求如下:

源表数据,例如:

帐户63010000/金额200

我们需要将帐户63010000进行alpha转换为0063010000,我已经完成了alpha过程,我想使用游标循环每一行,然后调用过程并更新本地表以进行alpha转换,但是问题是我 无法在SQL脚本中执行任何插入/更新操作,是否可以满足我的要求? 期待您的任何帮助。

非常感谢!

最诚挚的问候,

Sean cai

5条回答
四川大学会员
2020-09-22 12:25 .采纳回答

为什么要通过显示的错误消息来清楚显示错误消息(您不能在只读过程/函数中调用非只读过程-并且脚本化的计算视图为只读)。

但是问题是为什么您使用您描述的低性能实现? 目前尚不清楚为什么要使用游标,临时表和该逻辑来识别该列是否仅包含数字。

如果您进行搜索,可能会找到关于该主题的出色博客,以识别一列是否只有数字值。 请在此处查看精彩的博客。

有了这些信息,您只需进行选择即可进行转换。 下面是一个虚拟的例子(column =包含您要对其应用转换的值的列):

选择地图(locate_regexpr(START'^ [0-9] * $'FLAG'i'IN列)
                   ,0,栏
                   ,lpad(column,60,'0'))
 从...
 

逻辑是什么:使用LOCATE_REGEXPR函数检查列值是否仅包含数字。 如果不是,则该函数返回0。MAP函数对此进行检查。 如果返回0(不仅是数字),则列值将保持不变。 如果<> 0,则使用LPAD函数添加前导零。

关于,
弗洛里安

一周热门 更多>