ClickHouse异常解决-code: 1002

项目场景:

错误 [1002]: org.springframework.jdbc.UncategorizedSQLException: ### Error querying database. Cause: ru.yandex.clickhouse.except.ClickHouseUnknownException: ClickHouse exception, code: 1002, host: 端口号, port: 8123; 端口号:8123 failed to respond ### The error may exist in class path resource [mapper/monitor/IotDeviceDataMapper.xml] ### The error may involve defaultParameterMap ### The error occurred while setting parameters

问题描述

查询ClickHouse数据时部分报异常,部分不报异常,

<!-- clickhouse 版本 -->
        <dependency>
            <groupId>ru.yandex.clickhouse</groupId>
            <artifactId>clickhouse-jdbc</artifactId>
            <version>0.1.53</version>
        </dependency>

原因分析:

错误的sql复制下来粘贴导客户端也执行不了,报和项目同样的错

通过对sql分析结果

1,发现sql中多了许多ClickHouse识别不了的占位符空格等字段

解决方案:

把占位符之类的数据想办法去掉, 其中有两个连续的foreach 和 if 标签 利用代码逻辑去掉连续的标签,

经过修改打印的sql正确,项目运行发现还是会报错, 复制打印报错的sql放到客户端中能够执行成功 经过分心是jdbc版本出现问题 修改版本

<!-- clickhouse -->
        <dependency>
            <groupId>ru.yandex.clickhouse</groupId>
            <artifactId>clickhouse-jdbc</artifactId>
            <version>0.2.6</version>
        </dependency>

也许直接改变版本也能把占位符自动给去掉,但是没有经过验证。后期在遇到类似的问题可以验证一下。

经验分享 程序员 微信小程序 职场和发展