-
-
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]
报表里调用的是物化视图进行查询,点击计算报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]
最佳答案
问题原因:神通数据库中,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
解决方法:生成SQL语句时,去掉括号。
补丁见附件

使用方法:war包WEB-INF/lib下esen-jdbc.jar,同路径文件替换。
参考打补丁方法https://bbs.esensoft.com/thread-137853-1-1.html
8个回答
xxxl 发表于 2020-12-17 13:34
您数据库使用的具体版本号可以看一下吗
测试环境是神通数据库7.0.8.181104 for Windows(x86 64bit)
服务器版本是神通基于飞腾arm架构的7.0版本
两个库都存在物化视图查询 崩溃的问题
LL186 发表于 2020-12-17 17:06
测试环境是神通数据库7.0.8.181104 for Windows(x86 64bit)
服务器版本是神通基于飞腾arm架构的7.0版本 ...
哦哦好的 我这边咨询一下研发看看什么情况
xxxl 发表于 2020-12-22 11:36
可以再提供一下您的表样吗,测试那边需要复现这个问题
就这个

问题原因:神通数据库中,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