赞
踩
本文介绍了如何在DBeaver中使用pgFormatter、sqlprase、sqlformatter等外部格式化程序对sql进行格式化。
目录
pgFormatter本质是perl脚本,所以需要perl运行环境支持。
下载地址:https://github.com/darold/pgFormatter/releases/
perl下载地址:https://strawberryperl.com/下载Portable版本的zip压缩包即可
pgFormatter和perl下载后解压到任意目录,此处以Program Files文件夹为例
设置pgFormatter的配置文件
将D:\Program Files\pgFormatter-5.5\doc下的pg_format.conf.sample文件复制到D:\Program Files\pgFormatter-5.5文件夹下,并重命名为.pg_format.conf,该文件定义了如何对sql进行格式化,可参考官方文档用法说明根据自己需要进行修改。
窗口→首选项→编辑器→SQL编辑器→SQL格式化
格式选择:外部格式化程序
命令行中输入:
"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格式化成功说明即配置成功
点击“应用并关闭”即可,在SQL编辑器中使用Ctrl+Shift+F即可对sql进行格式化
sqlparse作为python中一个常用的sql解析库,经常用来解析sql,同时也可以用来格式化sql。
下载安装python:https://www.python.org/downloads/windows/,使用Embeddable版本的zip压缩包即可,同样解压到Program Files文件夹
下载安装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
安装后会在D:\Program Files\python3.12.1\Scripts下出现pip.exe文件
使用pip安装sqlparse
pip install sqlparse
在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
窗口→首选项→编辑器→SQL编辑器→SQL格式化
命令行中输入:
"D:\Program Files\python3.12.1\python.exe" "D:\Program Files\python3.12.1\sql_parse.py" ${file}
注意,这里需要勾选使用临时文件
点击“应用”后如果sql格式化成功即配置成功
点击“应用并关闭”即可,在SQL编辑器中使用Ctrl+Shift+F即可对sql进行格式化
在dbeaver中使用sqlparse进行格式化参考了该篇文章https://jakpentest.tistory.com/190
sql-formatter是一个JavaScript类库,仓库地址:https://github.com/sql-formatter-org/sql-formatter
下载安装Node.js:https://nodejs.org/en/download/ ,这里我们下载免安装的zip版本即可,同样解压到Program Files文件夹
安装sqlformmatter:
npm install 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
- }
窗口→首选项→编辑器→SQL编辑器→SQL格式化
命令行中输入:
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格式化成功即配置成功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。