I am looking for a Java open source beautifier or reformatter for SQL that I can use to clean up DDL statements that I am generating with openArchitectureWare.
Nothing in the answer to "Online Code Beautifier And Formatter" is of use to me and I have not been able to get Simple SQL Formatter to work for me.
So this is definitely what you are looking for: A SQL formatter library that support Oracle, SQL Server, DB2, MySQL, Teradata and PostgreSQL.
Have you considered:
http://www.sqlinform.com
They provide both an API version and a command line version (as well as an online version).
No knowledge of costs though.
With Hibernate v3.3.2.GA, org.hibernate.pretty.Formatter doesn't exist anymore. You can use its replacement : org.hibernate.jdbc.util.BasicFormatterImpl
UPDATE 2:
org.hibernate.jdbc.util.BasicFormatterImpl
got moved in release 4.0. It is now located at:org.hibernate.engine.jdbc.internal.BasicFormatterImpl
.UPDATE 1:
Technology marches on. As noted by Alex,
org.hibernate.pretty.Formatter
no longer exists as of version 3.3.2.GA. The replacement isorg.hibernate.jdbc.util.BasicFormatterImpl
:ORIGINAL ANSWER:
If you're using Hibernate, they've got one built-in:
org.hibernate.pretty.Formatter
Part of the eclipse Data Tools Platform is the SQL Development Tools Project.
The page describing how to use the SQL Query Parser has an extremely brief use of SQLQuerySourceFormat which provides these options:
You could just use a SQL grammar and build the AST with antlr. Then you can output the tree in any format you like.