原始SQL: ALTER TABLE kpiTarget ADD deleted tinyint DEFAULT 0 预期格式化后:ALTER TABLE kpiTarget\n\tADD deleted tinyint DEFAULT 0 用druid格式化:ALTER TABLE kpiTarget ADD (deleted tinyint DEFAULT 0) 已经明显改变了语义。 druid版本:1.1.6 (2018.1.30更新最新版也是一样)
原提问者GitHub用户renxiaoyao
SQLUtils.formatSQLServer 是一个用于格式化 SQL 语句的工具类,通常用于将 SQL 语句转换为更易读的格式。然而,如果您在使用该方法格式化 "ALTER TABLE" 语句时遇到错误,可能是由于以下原因:
这个问题可能是由于SQLUtils.formatSQLServer不够智能而导致的,它可能对特定的ALTER TABLE语句格式化出现了错误。
您可以尝试使用其他SQL格式化工具来解决这个问题。以下是一些值得尝试的SQL格式化工具:
SQL Formatter:这是一个在线工具,可以对多种不同的SQL语法进行格式化。您可以在网上找到这个工具并尝试使用它。
SQL Pretty Printer:这个工具可以格式化多种不同的SQL语法,包括ALTER TABLE语句。
PoorSQL:这是一个开源的SQL美化工具,可以帮助您格式化SQL语句并提高可读性。
您还可以尝试在编码中手动格式化SQL语句,以确保语义和可读性。例如,您可以使用字符串拼接和缩进来格式化您的SQL语句,以使其更易于阅读。
希望这些建议对您有所帮助,并能解决您遇到的问题。如果您还有其他问题,请随时向我提问。
感谢你的反馈。对于SQL格式化工具,不同的工具或版本可能会有不同的规则和行为。在你提供的示例中,使用了Druid进行格式化后,SQL语句的结构和语义发生了变化。
这种差异可能是由于Druid版本或配置中的特定规则造成的。Druid是一个开源的SQL解析器和格式化工具,由阿里巴巴公司开发和维护。虽然Druid旨在提供一致且合理的SQL格式化结果,但在某些情况下,输出结果可能与预期的不完全一致。
如果你需要确保SQL语句的格式化符合特定的需求和预期,可以尝试其他SQL格式化工具,并根据实际情况选择最适合的工具。另外,也建议检查Druid的相关文档和配置选项,以了解是否有可调整的参数来满足你的期望。
问题已修复,请用新版本 https://github.com/alibaba/druid/releases/tag/1.1.14
原回答者GitHub用户wenshao
预期的格式化后的SQL语句是与原始的SQL语句相同的,只是将换行符和缩进添加进去以提高可读性。而使用Druid格式化后的SQL语句则有所变化,它将括号添加到了ADD关键字后面,这可能会改变语句的语义。请注意,在不同的SQL格式化工具中,可能会有不同的格式化规则和结果。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。