HANA SQL:"无法支持递归公用表表达式"

2020-09-13 14:22发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我在HANA 1 SP...

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

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


大家好,

我在HANA 1 SPS 12上,并且创建了此数据库表:

创建表"测试"(ID int不为空); 

当我尝试执行此查询时:

使用" test" AS(SELECT * FROM" RBOUMAN"。" test")
 SELECT * FROM" test"; 

我收到此错误消息:

 SAP DBTech JDBC:[7]:不支持的功能:不支持递归公用表表达式'test':第1行第6行(在pos 5)
 无法执行"
 

我不明白为什么会发生这种情况。

WITH子句中的子查询引用了" RBOUMAN"。" test",在我看来,它明确指向架构" RBOUMAN"中的数据库表" test" "。
该错误似乎表明HANA认为该子查询正在引用自身。

不使用加引号的标识符的类似查询也可以正常工作:

,DUMMY为(
 选择*,'Y'作为Y
 来自SYS.DUMMY
 )
 从DUMMY中选择Y; 
有人可以向我解释为什么第一个查询给我这个结果吗? 是虫子吗?
4条回答
me_for_i
2020-09-13 15:03

据我所知,这是对表表达式中使用的任何表/视图名称进行直接测试以使其与查询中的任何表表达式名称都不匹配的结果。 如果存在匹配项,则假定他应该是递归访问。

为什么这样实现,这可能是实际开发人员的问题。

对于命名优先顺序,我的理解是,对于当前模式中所有对象的引用(即" "中的" "部分。" "与current_schema匹配) 显式架构命名被忽略,这使对表表达式的引用与本地架构相等。

从用户的角度来看,此设置从未遇到问题,因为我通常尝试使用"说"名称作为表和表达式别名。

一周热门 更多>

相关问答