[亿信BI4.7] 神通数据库下报表内使用+拼接字符串报错

16232
23

LL186 初学数据Lv2

发表于2021-3-2 11:30

悬赏10

已解决

楼主
单元格表达式为:V_QUERY_ZZQ_ZFMX.ORG_CODE +'  '+V_QUERY_ZZQ_ZFMX.ORG_NAME
报错信息为
2021-03-02 11:28:09.947 开始计算报表:copyof_zcmx(内存情况:FREE=1.568G TOTAL=1.917G MAX=1.917G)
2021-03-02 11:28:09.948 引用的主题表:V_QUERY_ZZQ_ZFMX 单位支付明细
2021-03-02 11:28:09.948 查询的数据级次范围:没有做限制。
2021-03-02 11:28:09.949 001开始多表格各分析区并行计算
2021-03-02 11:28:09.951 [GRID1(0.0.8.4)]正在生成SQL...
2021-03-02 11:28:10.068 [GRID1(0.0.8.4)]计算表格GRID1
2021-03-02 11:28:10.068 [GRID1(0.0.8.4)]生成SQL耗时117毫秒
2021-03-02 11:28:10.069 [GRID1(0.0.8.4)]执行SQL:
SELECT * FROM (select CONCAT(ifnull(CONCAT(ifnull(a.BUDGET_ACCOUNT,''), ifnull(' ','')),''), ifnull(a.BUDGET_ACCOUNT_NAME,'')) as B4,a.PROJECT_NAME as C4,CONCAT(ifnull(CONCAT(ifnull(a.PAY_TYPE,''), ifnull(' ','')),''), ifnull(a.PAY_NAME,'')) as D4,CONCAT(ifnull(CONCAT(ifnull(a.ECONOMY_TYPE,''), ifnull(' ','')),''), ifnull(a.ECONOMY_NAME,'')) as E4,a.PAY_MONEY as F4,CONCAT(ifnull(CONCAT(ifnull(CONCAT(ifnull(CONCAT(ifnull(CONCAT(ifnull(a.PAYEE_NAME,''), ifnull('(','')),''), ifnull(a.PAYEE_NUMBER,'')),''), ifnull('-','')),''), ifnull(a.PAYEE_BANK,'')),''), ifnull(')','')) as G4,a.PAY_DATE as H4,CONCAT(ifnull(a.ORG_CODE CONCAT(ifnull({0},''), ifnull(a.ORG_NAME,'')) ' ',''), ifnull(a.ORG_NAME,'')) as A4
from V_QUERY_ZZQ_ZFMX a
where ((a.PAY_DATE like '2020%') AND (a.ORG_CODE LIKE '100%'))
order by a.PAY_DATE desc )TEMP_ LIMIT 200
java.lang.RuntimeException: 计算浮动表元 GRID1->A4 (V_QUERY_ZZQ_ZFMX.ORG_CODE +' '+V_QUERY_ZZQ_ZFMX.ORG_NAME)时出错:parser: syntax error at or near "CONCAT" at character 627

  at com.oscar.protocol.OSCARProtocolV2.fetchMore(OSCARProtocolV2.java:451)
  at com.oscar.protocol.OSCARProtocolV2.fetchMore(OSCARProtocolV2.java:56)
  at com.oscar.jdbc.OscarStatementV2.doExecuteStatement(OscarStatementV2.java:153)
  at com.oscar.jdbc.OscarStatementV2.executeStatement(OscarStatementV2.java:103)
  at com.oscar.jdbc.OscarStatement.executeQuery(OscarStatement.java:721)
  at com.oscar.jdbc.OscarStatement.executeQuery(OscarStatement.java:701)
  at com.esen.jdbc.pool.PooledStatement.getQureyResultSet(PooledStatement.java:54)
  at com.esen.jdbc.pool.PooledStatement.executeQuery(PooledStatement.java:44)
  at com.esen.irpt.rpdb.db.top.OlapResultMultImpl.queryData(OlapResultMultImpl.java:421)
  at com.esen.irpt.rpdb.db.top.OlapResultMultImpl.doit(OlapResultMultImpl.java:230)
  at com.esen.irpt.rpdb.db.top.OlapResultMultImpl.(OlapResultMultImpl.java:97)
  at com.esen.irpt.rpdb.db.top.CalcOlapResult.calcGroupOlap(CalcOlapResult.java:78)
  at com.esen.irpt.fxcalc.impl.GroupOlapEngine.calc(GroupOlapEngine.java:35)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.OLTPResultManager.calcOlap(OLTPResultManager.java:554)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.OLTPResultManager.getOltpResult(OLTPResultManager.java:543)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.OLTPResultManager.getOltpData4AutoOlap(OLTPResultManager.java:155)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.OLTPResultManager.getOltpData(OLTPResultManager.java:88)
  at com.esen.irpt.fxcalc.impl.cache.FxBaseAnalyseReportCalc.getOltpData(FxBaseAnalyseReportCalc.java:502)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqCalc.getOltpData(FloatFxqCalc.java:271)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqInnerCalc.getOltpData(FloatFxqInnerCalc.java:80)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.getOltpData(FloatFxqInnerCalc.java:1174)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.getOltpData(FloatFxqInnerCalc.java:1145)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult_float_autoolap_processdata_select(FloatFxqInnerCalc.java:1030)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult_float_autoolap_processdata(FloatFxqInnerCalc.java:905)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult_float_oltp(FloatFxqInnerCalc.java:841)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult_float(FloatFxqInnerCalc.java:793)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult(FloatFxqInnerCalc.java:149)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqInnerCalc.calc(FloatFxqInnerCalc.java:59)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqCalc.calc(FloatFxqCalc.java:267)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatRectInFxqResultImpl.processResult(FloatRectInFxqResultImpl.java:56)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.RectsInFxqResultImpl.processResult(RectsInFxqResultImpl.java:102)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqResultImpl.processResult(FloatFxqResultImpl.java:98)
  at com.esen.irpt.fxcalc.impl.cache.floatfxq2.FloatFxqCalc.calc(FloatFxqCalc.java:105)
  at com.esen.irpt.fxcalc.impl.FxCalc.calc(FxCalc.java:34)
  at com.esen.irpt.fxcalc.impl.cache.RequestTask_FxqCalc.doRun(RequestTask_FxqCalc.java:104)
  at com.esen.irpt.req.AbstractRequestTask.call(AbstractRequestTask.java:85)
  at com.esen.platform.common.req.RequestTaskRunner.call(RequestTaskRunner.java:75)
  at com.esen.thread.LocaleTask.call(LocaleTask.java:60)
  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: parser: syntax error at or near "CONCAT" at character 627

  ... 42 more
Caused by: com.esen.jdbc.pool.impl.oscar.OscarPooledSQLException: parser: syntax error at or near "CONCAT" at character 627

  ... 42 more

最近看过此主题的会员

esen_56JGSW20OX

esen_4TU4L1BV1N

liuyt

anni3989

Yuuuu

最佳答案
本帖最后由 xxxl 于 2021-3-16 10:02 编辑

通过研发那边的排查,jdbc不能识别'+',需要将'+'换成'^'
23个回答

只看楼主

xxxl 数据领袖Lv6

发表于2021-3-2 13:45

只看该作者

取消 关注该作者的回复

沙发

看一下表样设置

LL186 初学数据Lv2

发表于2021-3-2 13:55

只看该作者

取消 关注该作者的回复

板凳

xxxl 发表于 2021-3-2 13:45
看一下表样设置

表样设置?

xxxl 数据领袖Lv6

发表于2021-3-2 13:59

只看该作者

取消 关注该作者的回复

地板


就是报表怎么取数怎么设置的

LL186 初学数据Lv2

发表于2021-3-2 15:17

只看该作者

取消 关注该作者的回复

5#

就正常常规取数,  只选择不分组,  这个单元格是浮动维,会报错  后面一个单元格不是浮动维  这种方式查询显示就不报错

xxxl 数据领袖Lv6

发表于2021-3-2 15:22

只看该作者

取消 关注该作者的回复

6#

LL186 发表于 2021-3-2 15:17
就正常常规取数,  只选择不分组,  这个单元格是浮动维,会报错  后面一个单元格不是浮动维  这种方式查询显 ...

可以截图看一下吗{:3_57:}

LL186 初学数据Lv2

发表于2021-3-2 15:29

只看该作者

取消 关注该作者的回复

7#

xxxl 发表于 2021-3-2 15:22
可以截图看一下吗17.gif

我把表导出来了
二.部门预算执行(20201222_123905).zip (8.38 KB, 下载次数: )

xxxl 数据领袖Lv6

发表于2021-3-2 15:40

只看该作者

取消 关注该作者的回复

8#

LL186 发表于 2021-3-2 15:29
我把表导出来了

传错表了?


LL186 初学数据Lv2

发表于2021-3-2 15:57

只看该作者

取消 关注该作者的回复

9#


我传错了?  你试试这个 二.部门预算执行(20210302_155555).zip (6.06 KB, 下载次数: )

xxxl 数据领袖Lv6

发表于2021-3-2 16:09

只看该作者

取消 关注该作者的回复

10#

LL186 发表于 2021-3-2 15:57
我传错了?  你试试这个

对这个没问题 我本地试试

xxxl 数据领袖Lv6

发表于2021-3-2 16:30

只看该作者

取消 关注该作者的回复

11#

LL186 发表于 2021-3-2 15:57
我传错了?  你试试这个

上面这个详情sql直接放在神通数据库中能计算出来吗

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

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

小时

全天响应

分钟

快速处理问题

工程师强势助力

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

400咨询:400-0011-866

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

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

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