Ответ 1
Этот инструмент переформатирует код SQL. Я использовал его с потрясающими результатами. Он бесплатный как webapp и имеет загружаемую версию.
Кто-нибудь знает о программе, утилите или некоторой программной библиотеке, желательно для Linux, которая принимает неформатированную строку SQL и довольно печатает ее?
Например, мне бы хотелось, чтобы следующий
select * from users where name = 'Paul'
будет изменено на что-то вроде этого
select *
from users
where
name = 'Paul'
Точное форматирование не имеет значения. Мне просто нужно что-то взять с большой строкой SQL и разбить ее на нечто более читаемое.
Этот инструмент переформатирует код SQL. Я использовал его с потрясающими результатами. Он бесплатный как webapp и имеет загружаемую версию.
Отъезд sqlparse. Это модуль Python, который устанавливает команду sqlformat
. Использование прост, например:
sqlformat --reindent --keywords upper --identifiers lower my_file.sql
Я попробовал вышеупомянутые альтернативы CLI, но:
create view
отсутствует, например).Благодаря sqlformat я даже узнал, что "REF" является зарезервированным ключевым словом в SQL: 2011 и SQL: 2008.
fsqlf (http://sourceforge.net/projects/fsqlf/) - это командная строка или программа с открытым исходным кодом для форматирования SQL. Он поддерживает наличие файла formatting.conf, который позволяет вам проявлять большую гибкость в отношении того, как выглядит конечный продукт.
Примеры:
☺ [[email protected]:~]
$ 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
☺ [[email protected]:~]
$ vim formatting.conf # 2 character change
☺ [[email protected]:~]
$ 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
☺ [[email protected]:~]
$ vim formatting.conf # 1 character change
☺ [[email protected]:~]
$ 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
☺ [[email protected]:~]
$
Мне нравится использовать http://www.dpriver.com - это хорошая надстройка для SQL Server Management Studio.
Этот выглядит хорошо.
Это тоже.
http://www.wangz.net/cgi-bin/pp/gsqlparser/sqlpp/sqlformat.tpl
Не то, чтобы я рекомендовал потратить (относительно большие) деньги на это только для этой цели, но Toad имеет встроенную функцию это делает именно то, что вы хотите.
Он включает в себя множество параметров, позволяющих точно определить, как вы хотите отформатировать SQL (все столбцы на отдельных строках и т.д.). Довольно приятно, но только если у вас уже есть Жаба. Я знаю, что версия Oracle делает это, но я бы предположил, что SQL Server или другие версии будут также.