电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

EAS扩展报表数据集执行常见报错及解决方案

来源:金蝶云社区作者:金蝶2024-09-229

EAS扩展报表数据集执行常见报错及解决方案

客户端制作扩展报表数据集时,有时会因为一些语法或数据库差异导致查询报错,导致报错的可能原因大概有以下原因,可参考进行问题分析排查。 1.使用with关键字 对于客户使用SQL Server数据库时,偶尔会碰到一些奇怪的问题,在其他类型数据库可以正常执行的SQL数据集,同样的SQL在SQL Server数据库执行却报错。 如:WITH TEMP AS(SELECT * FROM TableA) SELECT * FROM TEMP; 该种语法在工具连接SQL Server数据库时可正常执行。 ![sqlserver01.webp](/download/01006bb1bdc510494c94b9ae5b492550b8c8.webp) 客户端连接SQL Server数据库执行数据集会报错, ![sqlserver02.webp](/download/0100dda1bed6a81c4fa98d09b554117d615b.webp) ![sqlserver03.webp](/download/010099788f026e154cd7abb89999f844107c.webp) 报错原因分析:报表调用引擎执行取数sql时,引擎接口做了一些分页等其他操作后在源sql外层包装了一些select查询语句,导致with语句部分被作为了子查询,而SQL Server数据库不支持with作为子查询,故执行会报上面截图错误。 ![sqlserver04.webp](/download/010027025685915f417084d24a13cc90d50d.webp) SQL Server工具中执行with子查询也会执行报错。 ![sqlserver05.webp](/download/010045f40646f2744c548259b0c844264252.webp) 建议:客户端连接SQL Server数据库时,避免使用with语法,Oracle、PostgreSQL数据库可以正常使用。 2.union和union all关键字 客户端连接PostgreSQL数据库时,使用union或者union all拼接多段select查询时报错。 ![pg01.webp](/download/010089e20dc6d86844aaa7e9e730a0a7781c.webp) 错误原因分析:报表在检查sql语法的正确性时,会在每一个select语句中增加top关键字进行语法校验,引擎后面在做sql解析时,会根据数据库类型做分页处理,如转成limit语句,由于报表在多个select中都加了top关键字,导致引擎截取的时候只从最后一个limit截取,sql就会不完整,执行报错。 ![pg02.webp](/download/010007c580cacb064a6fa99703ce1a0ce1a0.webp) 解决方案:报表优化处理sql的代码,对于多个select使用union或union all时,在最外层包装top检验语法,避免出现多个top影响引擎解析sql,如select top n * from (select fnumber from a union all select fnumber from b )。 |版本|领域|补丁号| |-|-|-| |EAS861|报表中心|PT167299| 3.存储过程数据集执行没有

EAS扩展报表数据集执行常见报错及解决方案

客户端制作扩展报表数据集时,有时会因为一些语法或数据库差异导致查询报错,导致报错的可能原因大概有以下原因,可参考进行问题分析排查。...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信