SAP HANA Studio//SAP DBTech JDBC:[7]错误

2020-08-14 00:00发布

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

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


你好,

我迷路了,因为没有关于消息" SAP DBTech JDBC:[7]:不支持的功能:不支持非常量表达式:"的信息。 谁能给我一个提示,该消息的含义是什么,尤其是第二部分"不能支持非恒定表达"?

是否存在发生此错误的典型情况?

最好的问候

丹尼尔

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

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


你好,

我迷路了,因为没有关于消息" SAP DBTech JDBC:[7]:不支持的功能:不支持非常量表达式:"的信息。 谁能给我一个提示,该消息的含义是什么,尤其是第二部分"不能支持非恒定表达"?

是否存在发生此错误的典型情况?

最好的问候

丹尼尔

付费偷看设置
发送
7条回答
Nan4612
1楼-- · 2020-08-14 00:32

我看不到提到的 Artem Tkachev 中的任何步骤如何解决当前问题。

实际上,我强烈建议继续使用公用表表达式(WITH子句),因为它们会导致结构更好的SQL代码。

我看到的是"操作"中的子选择 表表达式不能保证返回标量值; 至少在编译时不适合SQL编译器。

因此,为什么不将它写为外部联接呢?

,操作(xxx,released_supp_date)为
 (选择xxx
      ,stat.udate为released_supp_date,
      ,yyy
      ,...
 从aufk.objnr = status.objnr和status.stat ='EXXXX'且lineNum = 1上的aufkleft外连接状态
 

请注意,您可以在表表达式名称的声明之后提供列列表-这样,您可以预先定义"操作"表达式的结构。 然后,根据您的编辑器,您可以很好地"折叠"实现。

在我的演示文稿中可以找到使复杂语句更易于理解的更多技巧(Humane DB设计和编程),来自 sitMEL今年早些时候

歪着头看世界
2楼-- · 2020-08-14 00:30

能否在您的网站上添加更多详细信息 问题(您打算做什么;您正在使用什么HANA版本,...)?

土豆飞人
3楼-- · 2020-08-14 00:29

也许我展示的SQL比实际要容易。 正如Breddemann先生提到的那样,新的aufkstat部分封装了status和aufk表之间的OUTER JOIN。

但是结果是一样的。

具有
 ,日期(日期,工作,今天)为(

 ...

 )

 ,fpl_status为(
 在(PARTITION BY objnr,stat ORDER BY udate DESC)上选择row_number()作为lineNum,objnr,udate
 来自" XXX" .jcds
 其中mandt ='100'
 和stat ='EXXXX'
 和inact =''
 )

 ,aufkstat为(
 选择aufk.objnr
 ,将fpl_status.udate作为fpl
 来自" XXX" .aufk
 aufk.objnr上的左外部联接fpl_status = fpl_status.objnr
 并且fpl_status.lineNum = 1
 其中aufk.mandt ='100'
 和aufk.werks ='1234'
 )


 ,操作为(
 选择afko.aufnr,
 afko.aufpl,
 aufk.werks,
 ...

 (从aufkstat中选择fpl,其中objnr = aufk.objnr)作为release_supp_date,
 ...

 来自" XXX" .afko
 在" XXX" .aufk.aufnr上加入" XXX" .aufk =" XXX" .afko.aufnr
 WHERE" XXX" .afko.mandt ='100'
 和" XXX" .aufk.werks ='1234'
  )

 选择
     日期,
     "待办事项"作为类别,
     aufnr,
     怪异的
     release_supp_date,
     release_supp_color_date,
     ...

 从
   操作,日期
    
 哪里
   日期 = afko.gstrp和
   功= 1;  
打个大熊猫
4楼-- · 2020-08-14 00:46

你好,

HANA版本为2.00.048.00。 计算视图的SCLscript由以下部分组成,该部分来自我猜。 无论如何,这是我在脚本中更改的最后一个。

如果我通过SAP HANA Studio在SQL控制台中启动了sqlscript,那么它将起作用。 如果我在select语句中使用该视图,则它将不起作用。

状态为

在(PARTITION BY objnr,stat ORDER BY udate DESC)上选择row_number()作为lineNum,objnr,stat,udate

来自jcds

其中mandt ='100',并且统计信息位于('EXXXX','EYYYY'),inact =''

),

操作方式

(...)

选择xxx,(从objnr = aufk.objnr和stat ='EXXXX'且lineNum = 1的状态中选择udate)作为release_supp_date,

yyy

....,

来自aufk

其中aufk.mandt ='100'和aufk.werks ='0815'

shere_lin
5楼-- · 2020-08-14 00:40

我会做什么:

1.将表的完整路径不仅写入

,还写入

2.使用...摆脱构造,并就地编写所有子查询

3。 确保已在sql脚本视图中创建了所有类型正确的结果列。

4。 尝试对每个子查询进行计算,以找出整个查询的哪个部分产生了错误

hengyuye
6楼-- · 2020-08-14 00:50

感谢您的答复。 我添加了对SQL的修改,因为第一篇文章中的SQL包含了一些简化。

一周热门 更多>

向帮助了您的网友说句感谢的话吧!