开发者社区> 问答> 正文

打印出的可执行SQL未能格式化

环境

druid 1.1.16 jdk 11 springboot 2.1.3 问题 升级版本后,发现打印出来的可执行SQL不在格式化了,不论怎么配置格式化设置都没反应。

T40.png

控制台打印出来的未格式化SQL

T41.png

原提问者GitHub用户yl-yue

展开
收起
山海行 2023-07-05 19:41:04 63 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    如果打印出的SQL语句未能正确格式化,可能的原因有以下几点:

    SQL格式化工具本身有问题。需要检查工具是否最新版本,是否存在已知问题。

    SQL语句中存在特殊字符未被正确转义。这可能会干扰SQL的语法分析和格式化。

    SQL分号被解析成语句分隔符。而实际上是SQL语句的一部分。

    SQL使用了数据库特定的语法和函数,格式化工具不支持。

    多语句批量SQL被解析成多条单语句。导致格式化出错。

    表名、列名中包含特殊字符干扰格式化。需要使用``引用identifier。

    对于特定的用例,可以进行以下检查:

    简单SQL如select语句是否可以被正确格式化;

    将分号使用转义字符;转义,检查格式化效果;

    使用``引起列名和表名,重新格式化;

    将多语句的SQL拆分为单语句,单独格式化检查。

    基于以上检查,可以确定问题原因:

    SQL问题:包含特殊字符或包含数据库特定语法

    格式化工具问题:版本更新,数据不全面识别SQL等.

    根据原因,可以进行相应改进:

    转义特殊字符或使用``引起标识符

    升级格式化工具版本

    自行编写格式化规则

    2023-07-30 16:32:00
    赞同 展开评论 打赏
  • 新版本可修复此问题。

    原回答者GitHub用户yl-yue

    2023-07-06 11:02:38
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载