点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我有一个带有子查询的查询,该查询将在SQL Developer中正确执行。 出于某种原因,在IDT中运行相同的查询将生成无效查询[ORA-009000]错误。
我尝试了三种在IDT中表示查询的方式。
1)作为过滤器对象(在业务层中):
CMS_FOLDER.SNAPSHOT_ID = ( SELECT最大值(SNAPSHOT_ID) 来自EYE_SNAPSHOT SNAPSHOT_NAME ='CMS' AND SNAPSHOT_RESULT ='1' )
2)作为CMS_FOLDER表(在数据基础中)的过滤器:
CMS_FOLDER.SNAPSHOT_ID = ( SELECT最大值(SNAPSHOT_ID) 来自EYE_SNAPSHOT SNAPSHOT_NAME ='CMS' AND SNAPSHOT_RESULT ='1' )
3)作为派生表(在数据基础中):
选择* 来自CMS_FOLDER 哪里 ( CMS_FOLDER.SNAPSHOT_ID = ( SELECT最大值(SNAPSHOT_ID) 来自EYE_SNAPSHOT SNAPSHOT_NAME ='CMS' AND SNAPSHOT_RESULT ='1' ) )
奇怪的是,派生表选项在UDT中可以正常工作。
IDT中的数据基础标记为 ANSI92 =是。
IDT有什么问题?
我创建了一个新的数据基础,添加了表和过滤器,并且能够看到表的值。 顺便说一句,ANSI92设置无效。
1)DF损坏,或者2)IDT中存在错误。 我猜想#2更有可能。
ORA-00900是无效的SQL错误,因此它一定做得不好。 解析对象或创建查询时遇到此错误? 如果创建查询时,请检查整个生成的SQL语句的外观,这可能有助于了解情况。
剪切和粘贴SQL文本时,有时它们包含 隐藏的字符(CR,LF)。
因此,请尝试在一行中编写SQL,以确保其中不包含任何字符(CR,LF)。
还请确保该字符 '是正确的(复制和粘贴时已更改)。
我在IDT中创建DT时解析了SQL,没有错误。 我也解析了过滤器-没有错误。
在每种情况下,完整查询看起来都像#3。
嗨,克雷格,
而不是在外部查询中使用*(星号),而是列出
谢谢,
Mahboob Mohammed
我倾向于同意您的观点,但是我从同一来源复制了相同的查询。 该查询在一个DF中有效,但在另一个DF中则无效。
无论如何,我都尝试了您的建议,但没有效果。
一周热门 更多>