SAP Table function 执行报错 code CX_SQL_EXCEPTION feature not supported 该如何分析

简介: SAP Table function 执行报错 code CX_SQL_EXCEPTION feature not supported 该如何分析

我的知识星球里有朋友提问:


我的场景是cds 调用 table function, table function 调用 amdp 然后报错:


code:CX_SQL_EXCEPTION message: feature not supported.Contains predicates only supported when table function is unfolded?


请问这个是什么意思???当我debug amdp的时候也没有报错


我们就着错误消息逐一分析。


feature not supported - 功能不支持。

具体什么功能不支持?Contains predicates only supported


Contains 这个 Predicates 功能不支持。


什么是 Contains Predicates?


请看 SAP 帮助文档。

image.png



我们看一下这个帮助文档的层级结构,发现它位于 SAP HANA Platform 的 FUZZY Search 下面,说明这是一个和 HANA 平台模糊搜索相关的功能:


image.png


在计算机科学中,Predicate 实际就是一个函数或者 SQL 语句,返回类型为布尔值,真或者假。


HANA SQL Script 里这个例子 ...WHERE CONTAINS(col, 'search term', FUZZY(0.7))... ,如果施加在一个数据类型的表列(Table Column) 上,返回 Fuzzy 分数大于或等于 0.7 的所有值。


Contains predicates only supported when table function is unfolded

字面意思,只有一个 unfolded table function 内部才允许使用 Contains 这个 predicate 功能。


那么什么是 unfolded table function?


根据 unfold 关键字查询:


image.png


可以看到 HANA Calculation View,Query 等模型都支持 unfold 操作。


如何判断一个 query 执行过程中是否发生了 unfolded?


SAP 官网:


开发人员可以使用 Explain Plan 功能检查 Query 是否 unfold. 如果查询中使用的所有表都出现在 Plan 中,则说明 Unfold 成功发生。


下面的示例显示了在 Caculation View 上执行的查询的 Explain Plan. k-匿名节点被投影节点(Projection Node)取代。 因此 Unfold 在默认情况下发生,所有涉及的表都显示在 Plan 中:


image.png


回到本文标题的错误,只有在 table function 执行时发生了 unfold,才支持 CONTAINS 这个 predicate.


但是 table function 在什么情况下才会 unfold?需要继续研究。



相关文章
|
SQL HIVE
DataGrip连接Hive执行DDL操作报错:「FAILED: ParseException line 1:5 cannot recognize input near 'show' 'indexes' 'on' in ddl statement」
DataGrip连接Hive执行DDL操作报错:「FAILED: ParseException line 1:5 cannot recognize input near 'show' 'indexes' 'on' in ddl statement」
574 0
DataGrip连接Hive执行DDL操作报错:「FAILED: ParseException line 1:5 cannot recognize input near 'show' 'indexes' 'on' in ddl statement」
|
5月前
|
Java 数据库连接 mybatis
项目移植到原先mybasis项目里出现BindingException: Invalid bound statement (not found): **selectPage
项目移植到原先mybasis项目里出现BindingException: Invalid bound statement (not found): **selectPage
52 1
|
5月前
|
SQL 监控 Oracle
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
|
11月前
SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘thinkphp.test‘ don‘t exsit
SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘thinkphp.test‘ don‘t exsit
261 0
SAP Table function 执行报错 code CX_SQL_EXCEPTION feature not supported 该如何分析
SAP Table function 执行报错 code CX_SQL_EXCEPTION feature not supported 该如何分析
SAP QM 执行事务代码QA11 报错- Selected set code does not exist, or data entered is incomplete-
SAP QM 执行事务代码QA11 报错- Selected set code does not exist, or data entered is incomplete-
SAP QM 执行事务代码QA11 报错- Selected set code does not exist, or data entered is incomplete-
|
SQL 索引
开发指南—DAL语句—CHECK GLOBAL INDEX
您可以使用CHECK GLOBAL INDEX语句检查主表和索引表的数据是否完全一致,并修订不一致的数据。
107 0
一个ABAP重构的实例:CL_CRM_LEAD_CREATE~SELECT_CAMPAIGNS_BY_SQL
Created by Wang, Jerry, last modified on Nov 12, 2015
134 0
|
SQL 安全 测试技术
MS SQL 错误:The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "test" was unable to begin a distributed transact
一同事在测试服务器(系统:Windows 2008 R2 Standard 数据库:SQL SERVER 2008 R2)通过链接服务器test使用分布式事务测试时出错,出错信息如下: set xact_abort on begin tran update test.
1473 0
|
SQL 数据库
SQL logic error or missing database no such table: xxx
原文:SQL logic error or missing database no such table: xxx System.
3343 0
下一篇
无影云桌面