HANA SQL中带有WHEN和过程的奇怪行为。

2020-09-03 16:31发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)以下与AMDP中的HANA SQ...

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

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


以下与AMDP中的HANA SQLScript相关。

在SELECT子句中考虑此字段表达式:SELECT ...,

 CASE:INTAB.A_NUMBER
     当" 1234"
         THEN(1//(:INTAB.A_NUMBER-:INTAB.A_NUMBER))
     当" 5678"
         然后:INTAB.SOME_OTHER_NUMBER
     其他0
 END RESULT_FIELD,

当输入数据集包含" A_NUMBER" ='1234'的记录时,自然会以除以零的错误进行转储。 如果没有这样的记录,则不会转储。 很好,符合预期。

现在考虑以下字段表达式:

案例:INTAB.COMPANY
     当" 1234"
         然后(CONVERT_CURRENCY(
                   AMOUNT => amount_field
                   SOURCE_UNIT => loc_currency
                   TARGET_UNIT =>'GBP'
                   REFERENCE_DATE => ref_date
                   客户=>'010'
                   模式=>:lv_schema))
     当" 5678"
         然后:INTAB.SOME_OTHER_VALUE
     其他0
 END AS key_figure_1,

当我使用不带COMPANY ='1234'的数据集运行此程序时,出现有关未设置货币换算的错误。 即使WHEN表达式不正确,看起来CONVERT_CURRENCY过程仍在运行。

这至少可以说是出乎意料的。 有人有什么解释吗?