点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我搜索了Google和SAP KB,但是找不到与此错误相关的任何内容。
我们正在使用ABAP报告调用HANA过程,但由于以下错误而崩溃:
"没有可用的SCORE函数实现"
我尝试在SQL Console中运行SQL,但没有错误。 (没有某些WHERE条件)
它在HANA 1.0上也没有错误运行,现在我们在HANA 2.0上。
有人遇到类似问题或确切知道分数"实施"在哪里吗?
该过程的"分数"部分如下所示:
立即将'INSERT INTES INTO" ABC :: TABLE2" ( "得分", "X", "X", "X", "X", "X", "X", "X", "X", "X") 选择TO_DECIMAL(SCORE(),3,2)作为"分数", "X", "X", "X", "X", "X", "X", "X", "X", "X" 来自" ABC :: TABLE1" 在哪里包含(" ZXXX",CAST('''||:LV_FXXXXT ||'''作为文本),FUZZY('||:LV_FUZZY_SCORE ||',''textSearch = compare,Threshold ='||:LV_TOKEN_TREFFER | |''')) AND SCORE()>'''|| :LV_FUZZY_SCORE || ''' AND OXXXXXR ='''|| :LV_OXXXXXR || ''' AND XXXXR ='''|| :LV_XXXXR || ''' AND ZXXX ='''|| :LV_PSCD_ZXXX || ''' AND FXXXXT ='''|| :LV_FXXXXT || '''';
" SCORE"周围有单引号吗?
您好Abhishek,
感谢您的评论。 我也这么认为,并且已经尝试删除这种情况,但是不幸的是,这并没有解决错误。
这是导致错误的部分:
错误消息似乎表明HANA尝试对它执行的数据类型使用SCORE()函数 不提供该功能。
这使我想到也许CAST(... AS TEXT)部分正在将其推开。
HANA 1和HANA 2之间,SAP进行了大量工作来清理HANA中不同"引擎"之间数据类型实现的混乱(例如,行存储CHAR!=列存储CHAR等)。 因此,也许错误是它的副作用。
尝试看看如果从CONTAINS子句中删除CAST部分会发生什么。
值得尝试运行 此没有分数功能的SQL,您可能已经看过有关该功能用法的帮助文档,并相应地进行了更改
https://help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.02/en-US/20e6f8e97519101489a0cd3c29991e72.html#:~:text = SCORE%20返回%20a%20real%20的值,column%20that%20引起的%20the%20match
谢谢
Abhishek Shanbhogue
这个错误消息引起了我的兴趣,我对此情况有所了解。
TL; DR:
对于HANA 2,当目标表是COLUMN存储表时,无法执行INSERT INTO(SELECT)的SQL执行。
要使其正常工作,您可以将SELECT的结果分配给 表变量,然后将该表变量用于INSERT INTO(SELECT ...)。
或者,您可以将目标表转换为ROW STORE表。
如果要在代码中保留动态SQL并且无法将目标表更改为行存储,则可能需要考虑 使用中间行存储表。
下面是要使用的代码:
正如我在帖子中所写的,我可以在SQL控制台中运行此SQL,而不会出现错误。 我猜语法似乎很好。 我也已经查看了帮助文档。
但是,如果我尝试使用ABAP报告调用该过程,则会收到错误消息。 是的,如果我将" ... SELECT TO_DECIMAL(SCORE(),3,2)替换为" SCORE"...。"
替换为" ... SELECT'1'AS"作为" SCORE" ..." 它工作正常。
一周热门 更多>