【扩展报表】861 PG库:数据集保存报错,提示syntax error at or near "LIMIT"原创
金蝶云社区-Jasmine_wzw
Jasmine_wzw
7人赞赏了该文章 3,746次浏览 未经作者许可,禁止转载编辑于2022年10月27日 10:19:15

问题1:数据集查询页签写脚本,使用方言,哪怕最简单的一个脚本都会报错。

image.png

com.kingdee.eas.rpts.ctrlsqldesign.exception.CtrlReportException: 保存成功,但生成输出字段失败,将不能在报表引入该数据集

执行SQL失败

innerGetRowSet() occur error,The RealPageQuery sql is:/*dialect*/

SELECT FNUMBER,FNAME_L2 FROM T_BD_MATERIAL limit 0 LIMIT 0  offset 0

Caused exception message is: ERROR: syntax error at or near "LIMIT"

  Position: 53 [Client -- String Serialize]

at com.kingdee.eas.rpts.ctrlsqldesign.exception.CtrlReportException.makeSameException(CtrlReportException.java:66)


问题2:数据集脚本有order by排序脚本时,保存数据集报错

Caused by: com.kingdee.bos.SQLDataException: innerGetRowSet() occur error,The RealPageQuery sql is:/*dialect*/SELECT * FROM (select *,row_number()over(order by tempcolumn)temprownumber  FROM (SELECT 

…………………………

WHERE  "CT_RPT_RptBaseData".CFIsEnable = 1  

 AND "CT_RPT_RptDataFill".CFIsFinal = 1

 AND "CT_RPT_RptDataFill".CFBillState = '1Audited'

AND  "T_BD_Period".FID='j3PRgcemRJa1soSpTBDvLYI4jEw='  and bu.FEnglishName='国贸地产' and  "T_ORG_Company".Fcode is not null

order by   "T_ORG_Company".Fcode,"T_ORG_Company".fcreatetime) AS T1 ) AS T2  ) AS T3  where temprownumber>0


问题3:自定义sql场景下,使用union all编写的sql保存报错,无法在报表中引用。

sql数据集查询脚本:

SELECT 

t1.fnumber salenumber 

FROM t_sd_saleorder t1 

 UNION ALL 

SELECT t1.fnumber  salenumber 

FROM t_sd_saleorder t1

报错:

Caused by: com.kingdee.bos.SQLDataException: innerGetRowSet() occur error,The RealPageQuery sql is:/*dialect*/(SELECT t1.fnumber AS salenumber FROM t_sd_saleorder t1 LIMIT 0) UNION ALL (SELECT t1.fnumber AS salenumber FROM t_sd_saleorder t1 LIMIT 0  offset 0

Caused exception message is: ERROR: syntax error at end of input

  Position: 149 [Client -- String Serialize]

at com.kingdee.bos.dao.query.server.QueryDataAccess.getRowSetForRealPage(QueryDataAccess.java:2595)

at rpc_generate._PROXY_com_1_kingdee_1_bos_1_dao_1_query_1_server_1_IQueryDataAccess.pi29(Unknown Source)

at rpc_generate._PROXY_com_1_kingdee_1_bos_1_dao_1_query_1_server_1_IQueryDataAccess.processInvoke(Unknown Source)


问题4:编辑参数报中断错误,按ctrl+e查看错误详情,如下:

错误信息:com.kingdee.bos.BOSException: Sql execute exception : SELECT FCONTENT FROM T_EXT_MACRO_CONTENT WHERE FMACROID=? AND FTYPE=? ORDER BY FINDEX ASC

Caused exception message is: Invalid arguments: position cannot be less that 1

错误详细堆栈信息:com.kingdee.eas.rpts.ctrlreport.macro.exception.MacroDesignException: com.kingdee.bos.BOSException: Sql execute exception : SELECT FCONTENT FROM T_EXT_MACRO_CONTENT WHERE FMACROID=? AND FTYPE=? ORDER BY FINDEX ASC

Caused exception message is: Invalid arguments: position cannot be less that 1

        at: com.kingdee.eas.rpts.ctrlreport.macro.exception.MacroDesignException.newFailed2QueryMacroException(MacroDesignException.java:62)

image.png

这种情况下,在查询分析器中执行脚本 SELECT  * FROM T_EXT_MACRO_CONTENT都会报错。

经分析,是现场新建了宏定义,但是宏的描述为空(字段nullable为true),这种情况下再次查询宏列表会报错。

image.png


----------------------------------------------------

上面4个问题都已经发补丁修复了,对应补丁号:

问题1、问题2:BOS运行引擎最新补丁  PT167337(发布日期:2022-08-12)

问题3:扩展报表领域的补丁 PT167299(发布日期:2022-08-19)

请更新补丁。


赞 7