[亿信BI4.7] V4.7.1BI在神通数据库下,对物化视图查询报错,高概率引起数据库崩溃

6005
8

LL186 初学数据Lv2

发表于2020-12-17 12:41

悬赏1

已解决

楼主
数据库为神通数据库,中间件为东方通,bi版本为BI@ReportV4.7.1_YYZWR12_20200908135754
报表里调用的是物化视图进行查询,点击计算报sql错误,重复点击几次后数据库大概率会崩溃,单独在sql交互工具里执行对物化视图的查询是没有问题的,就报表计算会报错.
报错信息如下:
java.lang.RuntimeException: 计算浮动表元 GRID11->A2 (V_QUERY_ZZQ_BMZXJD_2020.BUDGET_AMOUNT)时出错:com.esen.jdbc.pool.impl.oscar.OscarPooledSQLException: parser: syntax error at or near ")" at character 39

        at com.esen.jdbc.dialect.impl.TableMetaDataImpl.initCols(TableMetaDataImpl.java:125) ~[esen-jdbc-1.2.4.jar:na]
        at com.esen.jdbc.dialect.impl.TableMetaDataImpl.getColumn(TableMetaDataImpl.java:136) ~[esen-jdbc-1.2.4.jar:na]
        at com.esen.jdbc.dialect.impl.TableMetaDataCacheImpl.getColumn(TableMetaDataCacheImpl.java:49) ~[esen-jdbc-1.2.4.jar:na]
        at com.esen.irpt.rpdb.db.olap.DWSubject_Condition_Helper.getCalcBtypeConditionExp(DWSubject_Condition_Helper.java:108) ~[classes/:na]
        at com.esen.irpt.rpdb.db.olap.ExpToSql.addRealTable(ExpToSql.java:584) ~[classes/:na]
        at com.esen.irpt.rpdb.db.olap.ExpToSql.addRealTable(ExpToSql.java:512) ~[classes/:na]
        at com.esen.irpt.rpdb.db.olap.OlapSqlSingleMakerImpl.getOlapSql(OlapSqlSingleMakerImpl.java:634) ~[classes/:na]
        at com.esen.irpt.rpdb.db.olap.OlapSqlSingleMakerImpl.<init>(OlapSqlSingleMakerImpl.java:122) ~[classes/:na]
        at com.esen.irpt.rpdb.db.top.impl.OlapSqlMakerImpl.getsimpleOlapTable(OlapSqlMakerImpl.java:195) ~[classes/:na]
        at com.esen.irpt.rpdb.db.top.impl.OlapSqlMakerImpl.getNestOlapSql(OlapSqlMakerImpl.java:76) ~[classes/:na]
        at com.esen.irpt.rpdb.db.top.impl.OlapSqlMakerImpl.getMultiOlapSql(OlapSqlMakerImpl.java:92) ~[classes/:na]
        at com.esen.irpt.rpdb.db.top.OlapResultMultImpl.doit(OlapResultMultImpl.java:220) ~[classes/:na]
        at com.esen.irpt.rpdb.db.top.OlapResultMultImpl.<init>(OlapResultMultImpl.java:97) ~[classes/:na]
        at com.esen.irpt.rpdb.db.top.CalcOlapResult.calcGroupOlap(CalcOlapResult.java:78) ~[classes/:na]
        at com.esen.irpt.fxcalc.impl.GroupOlapEngine.calc(GroupOlapEngine.java:35) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.OLTPResultManager.calcOlap(OLTPResultManager.java:554) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.OLTPResultManager.getOltpResult(OLTPResultManager.java:543) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.OLTPResultManager.getOltpData4AutoOlap(OLTPResultManager.java:155) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.OLTPResultManager.getOltpData(OLTPResultManager.java:88) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.FxBaseAnalyseReportCalc.getOltpData(FxBaseAnalyseReportCalc.java:502) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqCalc.getOltpData(FloatFxqCalc.java:271) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqInnerCalc.getOltpData(FloatFxqInnerCalc.java:80) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.getOltpData(FloatFxqInnerCalc.java:1174) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.getOltpData(FloatFxqInnerCalc.java:1145) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult_float_autoolap_processdata_group_A_ds(FloatFxqInnerCalc.java:962) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult_float_autoolap_processdata_group(FloatFxqInnerCalc.java:937) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult_float_autoolap_processdata(FloatFxqInnerCalc.java:908) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult_float_oltp(FloatFxqInnerCalc.java:841) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult_float(FloatFxqInnerCalc.java:793) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult(FloatFxqInnerCalc.java:149) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqInnerCalc.calc(FloatFxqInnerCalc.java:59) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqCalc.calc(FloatFxqCalc.java:267) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatRectInFxqResultImpl.processResult(FloatRectInFxqResultImpl.java:56) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.RectsInFxqResultImpl.processResult(RectsInFxqResultImpl.java:102) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqResultImpl.processResult(FloatFxqResultImpl.java:98) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqCalc.calc(FloatFxqCalc.java:105) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.FxCalc.calc(FxCalc.java:34) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.fxcalc.impl.cache.RequestTask_FxqCalc.doRun(RequestTask_FxqCalc.java:104) ~[bi-fxcalc-4.7.1_yyzw-SNAPSHOT.jar:na]
        at com.esen.irpt.req.AbstractRequestTask.call(AbstractRequestTask.java:85) [classes/:na]
        at com.esen.platform.common.req.RequestTaskRunner.call(RequestTaskRunner.java:75) [classes/:na]
        at com.esen.thread.LocaleTask.call(LocaleTask.java:60) [esen-util-1.2.4.jar:na]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_77]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_77]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_77]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77]
Caused by: java.lang.RuntimeException: com.esen.jdbc.pool.impl.oscar.OscarPooledSQLException: parser: syntax error at or near ")" at character 39

        ... 45 common frames omitted
Caused by: com.esen.jdbc.pool.impl.oscar.OscarPooledSQLException: parser: syntax error at or near ")" at character 39

        at com.oscar.protocol.OSCARProtocolV2.fetchMore(OSCARProtocolV2.java:451) ~[oscarJDBC(2).jar:na]
        at com.oscar.protocol.OSCARProtocolV2.fetchMore(OSCARProtocolV2.java:56) ~[oscarJDBC(2).jar:na]
        at com.oscar.jdbc.OscarStatementV2.doExecuteStatement(OscarStatementV2.java:157) ~[oscarJDBC(2).jar:na]
        at com.oscar.jdbc.OscarStatementV2.executeStatement(OscarStatementV2.java:98) ~[oscarJDBC(2).jar:na]
        at com.oscar.jdbc.OscarStatement.executeQuery(OscarStatement.java:719) ~[oscarJDBC(2).jar:na]
        at com.oscar.jdbc.OscarStatement.executeQuery(OscarStatement.java:699) ~[oscarJDBC(2).jar:na]
        at com.esen.jdbc.pool.PooledStatement.getQureyResultSet(PooledStatement.java:54) ~[esen-jdbc-1.2.4.jar:na]
        at com.esen.jdbc.pool.PooledStatement.executeQuery(PooledStatement.java:44) ~[esen-jdbc-1.2.4.jar:na]
        at com.esen.jdbc.dialect.impl.oscar.OscarTableMetaData.initColumnsForSqlQuery(OscarTableMetaData.java:96) ~[esen-jdbc-1.2.4.jar:na]
        at com.esen.jdbc.dialect.impl.oscar.OscarTableMetaData.initColumns(OscarTableMetaData.java:35) ~[esen-jdbc-1.2.4.jar:na]
        at com.esen.jdbc.dialect.impl.TableMetaDataImpl.initCols(TableMetaDataImpl.java:122) ~[esen-jdbc-1.2.4.jar:na]
        ... 44 common frames omitted]

最近看过此主题的会员

dyn

RLMBEST

数据狗

Shirley

xiaolinzi

szoscar55

jianma

wisdoma

esen_3TGN4X8BD2WZ

wentong.li

xxxl

dongying

bbs

最佳答案

xxxl

发表于2020-12-17 12:41

只看该作者

取消 关注该作者的回复

问题原因:神通数据库中,SQL语句表名不能加括号,如:select * from (V_QUERY_ZZQ_BMZXJD_2020) a where 1>2
解决方法:生成SQL语句时,去掉括号。
补丁见附件 ESENBI-14942.zip (4.25 KB, 下载次数: )
使用方法:war包WEB-INF/lib下esen-jdbc.jar,同路径文件替换。
参考打补丁方法https://bbs.esensoft.com/thread-137853-1-1.html

8个回答

只看楼主

xxxl 数据领袖Lv6

发表于2020-12-17 13:34

只看该作者

取消 关注该作者的回复

沙发

您数据库使用的具体版本号可以看一下吗

LL186 初学数据Lv2

发表于2020-12-17 17:06

只看该作者

取消 关注该作者的回复

板凳

xxxl 发表于 2020-12-17 13:34
您数据库使用的具体版本号可以看一下吗

测试环境是神通数据库7.0.8.181104 for Windows(x86 64bit)
服务器版本是神通基于飞腾arm架构的7.0版本   
两个库都存在物化视图查询 崩溃的问题

xxxl 数据领袖Lv6

发表于2020-12-17 17:14

只看该作者

取消 关注该作者的回复

地板

LL186 发表于 2020-12-17 17:06
测试环境是神通数据库7.0.8.181104 for Windows(x86 64bit)
服务器版本是神通基于飞腾arm架构的7.0版本   ...

哦哦好的 我这边咨询一下研发看看什么情况

xxxl 数据领袖Lv6

发表于2020-12-18 10:57

只看该作者

取消 关注该作者的回复

5#

和研发确认 应该是bug 需要提贴复现该问题我已经私聊您了 您回一下

xxxl 数据领袖Lv6

发表于2020-12-22 11:36

只看该作者

取消 关注该作者的回复

6#

可以再提供一下您的表样吗,测试那边需要复现这个问题

LL186 初学数据Lv2

发表于2020-12-22 12:41

只看该作者

取消 关注该作者的回复

7#

xxxl 发表于 2020-12-22 11:36
可以再提供一下您的表样吗,测试那边需要复现这个问题

就这个
二.部门预算执行(20201222_123905).zip (8.38 KB, 下载次数: )

xxxl 数据领袖Lv6

发表于2020-12-22 13:37

只看该作者

取消 关注该作者的回复

8#


好滴

xxxl 数据领袖Lv6

发表于2020-12-17 12:41

只看该作者

取消 关注该作者的回复

9#

问题原因:神通数据库中,SQL语句表名不能加括号,如:select * from (V_QUERY_ZZQ_BMZXJD_2020) a where 1>2
解决方法:生成SQL语句时,去掉括号。
补丁见附件 ESENBI-14942.zip (4.25 KB, 下载次数: )


使用方法:war包WEB-INF/lib下esen-jdbc.jar,同路径文件替换。
参考打补丁方法https://bbs.esensoft.com/thread-137853-1-1.html

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号