Pau*_*den 41 sql linux formatting code-formatting
有没有人知道一个程序,一个实用程序或一些程序库,最好是Linux,它采用一个未格式化的SQL字符串并打印出来?
例如,我想要以下内容
select * from users where name = 'Paul'
Run Code Online (Sandbox Code Playgroud)
改成这样的东西
select *
from users
where
name = 'Paul'
Run Code Online (Sandbox Code Playgroud)
确切的格式并不重要.我只需要一些东西来获取一个大的SQL字符串并将其分解为更具可读性的东西.
fel*_*mel 56
看看sqlparse.它是一个安装命令的Python模块sqlformat.用法很简单,例如:
sqlformat --reindent --keywords upper --identifiers lower my_file.sql
Run Code Online (Sandbox Code Playgroud)
我尝试了前面提到的CLI替代方案,但是:
create view例如缺少).感谢sqlformat,我甚至了解到"REF"是SQL:2011和SQL:2008中的保留关键字.
Way*_*ker 11
fsqlf(http://sourceforge.net/projects/fsqlf/)是一个命令行或GUI程序,开源,用于格式化SQL.它支持使用formatting.conf文件,该文件允许您在最终产品外观方面具有很大的灵活性.
例子:
? [wwalker@speedy:~]
$ echo "select f1, f2, fname, lName from tblName where f1 = true and fname is not null order by lName asc" | fsqlf
SELECT
f1
, f2
, fname
, lName
FROM tblName
WHERE f1=true
AND fname is not null
ORDER BY lName asc
? [wwalker@speedy:~]
$ vim formatting.conf # 2 character change
? [wwalker@speedy:~]
$ echo "select f1, f2, fname, lName from tblName where f1 = true and fname is not null order by lName asc" | fsqlf
SELECT
f1 ,
f2 ,
fname ,
lName
FROM tblName
WHERE f1=true
AND fname is not null
ORDER BY lName asc
? [wwalker@speedy:~]
$ vim formatting.conf # 1 character change
? [wwalker@speedy:~]
$ echo "select f1, f2, fname, lName from tblName where f1 = true and fname is not null order by lName asc" | fsqlf
SELECT
f1 , f2 , fname , lName
FROM tblName
WHERE f1=true
AND fname is not null
ORDER BY lName asc
? [wwalker@speedy:~]
$
Run Code Online (Sandbox Code Playgroud)
此工具重新格式化SQL代码.我用它有很棒的结果.它作为webapp免费提供,并且还有可下载的版本.
| 归档时间: |
|
| 查看次数: |
13094 次 |
| 最近记录: |