DBeaver中使用外部格式化程序对进行sql格式化

这篇具有很好参考价值的文章主要介绍了DBeaver中使用外部格式化程序对进行sql格式化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文介绍了如何在DBeaver中使用pgFormatter、sqlprase、sqlformatter等外部格式化程序对sql进行格式化。

目录

一、pgFormatter

1.准备工作

2.DBeaver中进行配置

二、sqlprase

1.准备工作

2.在DBeaver中配置

三、sql-formatter

1.准备工作

2.在DBeaver中配置


一、pgFormatter

pgFormatter本质是perl脚本,所以需要perl运行环境支持。

1.准备工作

下载地址:https://github.com/darold/pgFormatter/releases/

perl下载地址:https://strawberryperl.com/下载Portable版本的zip压缩包即可

pgFormatter和perl下载后解压到任意目录,此处以Program Files文件夹为例

dbeaver sql_parse.py 案例,DBeaver,sql格式化,外部格式化程序,pgformatter,sqlprase,sql-formatter

设置pgFormatter的配置文件

将D:\Program Files\pgFormatter-5.5\doc下的pg_format.conf.sample文件复制到D:\Program Files\pgFormatter-5.5文件夹下,并重命名为.pg_format.conf,该文件定义了如何对sql进行格式化,可参考官方文档用法说明根据自己需要进行修改。

2.DBeaver中进行配置

窗口→首选项→编辑器→SQL编辑器→SQL格式化

dbeaver sql_parse.py 案例,DBeaver,sql格式化,外部格式化程序,pgformatter,sqlprase,sql-formatter

格式选择:外部格式化程序

命令行中输入:

"D:\Program Files\perl-5.32.1.1_x64\perl\bin\perl.exe" "D:\Program Files\pgFormatter-5.5\pg_format"  -c "D:\Program Files\pgFormatter-5.5\.pg_format.conf" -

注意不要漏掉最后的短杠-

点击应用,如果看到sql格式化成功说明即配置成功

dbeaver sql_parse.py 案例,DBeaver,sql格式化,外部格式化程序,pgformatter,sqlprase,sql-formatter

点击“应用并关闭”即可,在SQL编辑器中使用Ctrl+Shift+F即可对sql进行格式化

二、sqlparse

sqlparse作为python中一个常用的sql解析库,经常用来解析sql,同时也可以用来格式化sql。

1.准备工作

下载安装python:https://www.python.org/downloads/windows/,使用Embeddable版本的zip压缩包即可,同样解压到Program Files文件夹

dbeaver sql_parse.py 案例,DBeaver,sql格式化,外部格式化程序,pgformatter,sqlprase,sql-formatter

下载安装pip

下载pip脚本:https://bootstrap.pypa.io/get-pip.py,注意python2.7和python3使用的get-pip.py文件不同,复制get-pip.py文件到D:\Program Files\python3.12.1文件夹下,在cmd中进行安装

python get-pip.py

dbeaver sql_parse.py 案例,DBeaver,sql格式化,外部格式化程序,pgformatter,sqlprase,sql-formatter

安装后会在D:\Program Files\python3.12.1\Scripts下出现pip.exe文件

使用pip安装sqlparse

pip install sqlparse

dbeaver sql_parse.py 案例,DBeaver,sql格式化,外部格式化程序,pgformatter,sqlprase,sql-formatter

在D:\Program Files\python3.12.1文件夹下创建sql_parse.py文件,sql_parse.py内容如下:

#-*- coding: UTF-8 -*-
# sql_parse.py 注意文件名必须使用下划线分割单词,不然会执行出错!
import sys
import sqlparse

def sql_formatter(record):
    sql = sqlparse.format(
        record,
        keyword_case='upper',#关键字大小写
        identifier_case='lower',#标识符大小写
        truncate_strings=70,#字符串超过指定长度截断
        reindent=True,#是否整体缩进
        comma_first=False,#是否逗号在前
        wrap_after=100 #select字段列表超过多少字符换行,如果不指定每个字段单独一行
        ).strip('\n')
    sql='\n'.join([l for l in sql.split('\n')])
    return sql
    
# append
file_path = sys.argv[1]
with open(file_path,"r") as f:
    read_sql = f.read()
    
with open(file_path,"w") as f:
    for sql in read_sql.split(';'):
        _sql = sql_formatter(sql)
        print(_sql)
        print("\n")

sqlparse.format参数说明详见: https://sqlparse.readthedocs.io/en/latest/api/#formatting

2.在DBeaver中配置

窗口→首选项→编辑器→SQL编辑器→SQL格式化

dbeaver sql_parse.py 案例,DBeaver,sql格式化,外部格式化程序,pgformatter,sqlprase,sql-formatter

命令行中输入:

"D:\Program Files\python3.12.1\python.exe" "D:\Program Files\python3.12.1\sql_parse.py" ${file}

注意,这里需要勾选使用临时文件

点击“应用”后如果sql格式化成功即配置成功文章来源地址https://www.toymoban.com/news/detail-822935.html

dbeaver sql_parse.py 案例,DBeaver,sql格式化,外部格式化程序,pgformatter,sqlprase,sql-formatter

点击“应用并关闭”即可,在SQL编辑器中使用Ctrl+Shift+F即可对sql进行格式化

在dbeaver中使用sqlparse进行格式化参考了该篇文章https://jakpentest.tistory.com/190

三、sql-formatter

sql-formatter是一个JavaScript类库,仓库地址:https://github.com/sql-formatter-org/sql-formatter

1.准备工作

下载安装Node.js:https://nodejs.org/en/download/ ,这里我们下载免安装的zip版本即可,同样解压到Program Files文件夹

安装sqlformmatter:

npm install sql-formatter

dbeaver sql_parse.py 案例,DBeaver,sql格式化,外部格式化程序,pgformatter,sqlprase,sql-formatter

这里没有使用-g参数,即在当前文件夹进行安装,安装完成以后可以看到D:\Program Files\node-v20.10.0-win-x64\node_modules文件夹下多了一个sql-formatter文件夹。

创建sqlformatter格式化的配置文件config.json,可以是任意位置,比如:D:\Program Files\node-v20.10.0-win-x64\node_modules\sql-formatter\bin下

config.json内容如下:

{
  "language": "spark",
  "tabWidth": 2,
  "keywordCase": "upper",
  "linesBetweenQueries": 2
}

2.在DBeaver中配置

窗口→首选项→编辑器→SQL编辑器→SQL格式化

dbeaver sql_parse.py 案例,DBeaver,sql格式化,外部格式化程序,pgformatter,sqlprase,sql-formatter

命令行中输入:

node "D:\\Program Files\\node-v20.10.0-win-x64\\node_modules\\sql-formatter\\bin\\sql-formatter-cli.cjs" -c "D:\\Program Files\\node-v20.10.0-win-x64\\node_modules\\sql-formatter\\bin\\config.json" ${file}

 注意,node命令中路径需要使用双斜杠,需要勾选使用临时文件

点击“应用”后如果sql格式化成功即配置成功

到了这里,关于DBeaver中使用外部格式化程序对进行sql格式化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 惊~只需要这样配置就可以让小程序使用Prettier格式化,还支持wxml等文件

    安装Prettier 首先找到扩展商店的入口 入口1:设置 → 扩展设置 → 编辑器扩展 → prettier 入口2:打开编辑器面板 → 找到小方块(扩展商店)→ 搜索prettier 配置基础的规则 安装好后,就可以在设置中找到该插件了,然后进行设置,直接点击右上角的格式化配置文件 setting.js

    2024年02月09日
    浏览(61)
  • 【工具分享】程序员在线工具集(json格式化-html格式化-加密工具)

    演示地址 在线工具集 功能介绍 json格式化 。 JSON 可以将程序语言对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式,例如在 PHP 中,可以将 JSON还原为数组或者一个基本对象

    2024年02月12日
    浏览(60)
  • git代码提交规范、强制git代码提交规范、强制代码进行格式化

    1、安装commitizen和cz-customizable npm install -g commitizen@4.2.4 npm i cz-customizable@6.3.0 --save-dev 2、在package.json中进行新增 \\\"config\\\": {   \\\"commitizen\\\": {     \\\"path\\\": \\\"node_modules/cz-customizable\\\"   } } 3、初始化完成之后 将.cz-config.js配置文件 拖到根目录下 4、之后就可以用 git cz 来代替 git commit    (在

    2024年02月13日
    浏览(57)
  • ESLint格式化程序消失,怎么解决

    今天发现vscode的ESLint格式化程序出不来,格式化没效果,一开始以为是哪里同步了setting.json被改了,做了处理。查网上资料也没有相关的,自行测试。仅适用于原本有,目前没有的。不会安装使用的看其他文档。 消失原因 今天ESLint更新了,大概率是bug 解决方法 安装上一次版

    2024年01月24日
    浏览(55)
  • 微信小程序 prettier 格式化

    然后再打开setting.json 新增代码 保存关闭setting.json 内容如下 然后保存看看,有没有效果,如果没有就重启一下

    2024年02月04日
    浏览(41)
  • 使用vscode格式化文档无效(vue代码格式化文档无效)

    问题: 最近在写代码的时候,vscode使用格式化文档不管用。 原因: 单页面使用大量element组件和html代码导致,vscode识别不了。 解决方案: 1、 打开设置,点击右侧的图标打开settings.json文件,在文件中注入代码。 settings.json文件位置,vscode左下角:  设置页面右上角:  在

    2024年02月16日
    浏览(75)
  • 关于小程序中时间格式化解决方法

    小程序格式化时间方法 方法(1): const formatDate = (num, fmt) = { if (num == \\\'\\\') { return \\\'\\\' } const date = new Date(num) let o = { \\\"M+\\\": date.getMonth() + 1, //月份 \\\"d+\\\": date.getDate(), //日 \\\"h+\\\": date.getHours(), //小时 \\\"m+\\\": date.getMinutes(), //分 \\\"s+\\\": date.getSeconds(), //秒 \\\"q+\\\": Math.floor((date.getMonth() + 3) / 3), //季度

    2024年02月13日
    浏览(45)
  • vue3 codemirror关于 sql 和 json格式化的使用以及深入了解codemirror 使用json格式化提示错误的关键代码。包含了json格式化没有效果和json格式化提示错误

    后端返回一个json字符串,里面有value1、value2指定字段渲染sql语句,其他渲染json语句。 jsonlint 和 jsonlint-mod 的区别 简单理解:jsonlint校验json格式化是否有效,jsonlint-mod用来格式化后同时校验json格式化是否有效。 (1)JSONLint是一种可以验证JSON格式是否有效的工具。 它可以检查

    2024年04月28日
    浏览(77)
  • 微信小程序格式化日期的几种方式

    wxml 文件 2.JS文件 在 wxml 文件 引入 wxs 文件 2.wxs 文件 wxml 文件 在 JS 文件引入 util 文件 util 文件

    2024年02月08日
    浏览(52)
  • Java程序设计入门教程--日期格式化类SimpleDateFormat

           在程序设计中,经常用到特定的日期格式,此时就可以使用 java.text 包中的 SimpleDateFormat 类来对日期时间进行格式化,如可以将日期转换为指定格式的文本,也可将文本转换为日期。 目标格式 使用SimpleDateFormat类时,首先要定义一个要转换的日期时间目标格式。目标格

    2024年02月07日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包