点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我在HANA 1 SP...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我在HANA 1 SP...
加入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;有人可以向我解释为什么第一个查询给我这个结果吗? 是虫子吗?
我认为您正在与用户RBOUMAN在设置了默认架构RBOUMAN的SQL控制台中执行该语句。 在这种情况下,在语句SELECT * FROM" test"中,如果您用" test"表示CTE结果或表" RBOUMAN"。" test"(因为考虑了默认架构RBOUMAN),它不是唯一的。
如果您使用命令SET SCHEMA设置了控制台中的其他架构-其中不存在"测试"表-它将适用于您的方案(例如SET SCHEMA SYSTEM)。 但这当然不是解决方案,因为您应该选择一个不与表名称冲突的特定CTE结果名称。
如果是bug,我不知道,因为对于HANA来说,正式解释文档的顺序不是正式的。 但是根据我的感觉,我会拒绝。 也许SAP的某人可以放弃一些与此有关的知识。
致谢,
弗洛里安语
一周热门 更多>