为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8.1.1.49
【操作系统】:windows
【CPU】:16G
【问题描述】*:springboot项目,druid版本为1.1.20,达梦版本为8.1.1.49,执行sql druid报错信息如下:com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'atic PIVOT (max(M_grossweight) FOR ', expect RPAREN, actual LPAREN pos 714, line 1, column 713, token LPAREN
但是页面正常展示,放在达梦管理工具中也可以正常执行sql如下:
WITH CARRIER_grossweight_static
AS
(
SELECT CARRIER,
SUBSTR(SENDDATE,0,4) AS YEARS,
SUBSTR(SENDDATE,5,2) AS MONTHS,
round(sum(grossweight)/1000,2) AS M_grossweight
FROM U_NETWORK_FREIGHT.YW_IMP_CARGO_MR_BODY a
LEFT JOIN U_NETWORK_FREIGHT.YW_IMP_CARGO_MR_BODY_GOOD b
ON a.mrnumber=b.MRNUMBER
GROUP BY SUBSTR(SENDDATE,0,4),SUBSTR(SENDDATE,5,2),CARRIER
)
SELECT T.CARRIER,T.YEARs,S.total_grossweight AS num,
NVL(one,0) one,
NVL(two,0) two,
NVL(three,0) three,
NVL(four,0) four,
NVL(five,0) five,
NVL(six,0) six,
NVL(seven,0) seven,
NVL(eight,0) eight,
NVL(nine,0) nine,
NVL(ten,0) ten,
NVL(eleven,0) eleven,
NVL(twelve,0) twelve
FROM CARRIER_grossweight_static pivot
(
max(M_grossweight) FOR months IN(
'01' one ,'02' two,'03' three,'04'four,'05'five,
'06'six,'07'seven,'08'eight,'09'nine,'10'ten,'11'eleven,'12'twelve)
) T
LEFT JOIN
( SELECT CARRIER,years,nvl(sum(M_grossweight),0) total_grossweight FROM
CARRIER_grossweight_static GROUP BY CARRIER,years
) S ON T.carrier = S.carrier AND T.years=s.years
WHERE T.years = '2022'
其他数据库都可以正常执行。这种情况应该如何解决,如果有其他更为规范的写法,麻烦告知。
在conf/canal.properties文件里,将如下所示的一行配置信息注释掉,然后重启试试。
#canal.instance.tsdb.spring.xml=classpath:spring/tsdb/h2-tsdb.xml
如果还不行,升级下druid版本试试。
刚才帮你看了一下SQL,写得没什么问题的,可以把报错的日志提供一下吗,这样方便定位问题