SQL Translation

Use the jOOQ Parser to translate any SQL statement(s) to a different dialect.* This is work in progress. Your help in improving our parser is greatly appreciated. See below how to report bugs.

Put your SQL statement here

Input Dialect No specific dialect CockroachDB DB2 LUW Derby Firebird H2 HANA HSQLDB Informix Ingres MariaDB MySQL MS Access Oracle PostgreSQL Redshift SQL Data Warehouse (Azure Synapse Analytics) SQLite SQL Server Sybase ASE Sybase SQL Anywhere Teradata Vertica



Output Dialect Aurora MySQL Aurora PostgreSQL CockroachDB DB2 LUW 9 DB2 LUW 10 DB2 LUW 11 DB2 LUW (latest version) Derby Firebird 2.5 Firebird 3.0 Firebird (latest version) H2 HANA HSQLDB Informix Ingres MariaDB MariaDB MariaDB MariaDB MariaDB MariaDB MariaDB (latest version) MySQL 5.7 MySQL 8.0 MySQL 8.0.19 MySQL (latest version) MS Access Oracle 10g Oracle 11g Oracle 12c Oracle 18c Oracle 20c Oracle (latest version) PostgreSQL 9.3 PostgreSQL 9.4 PostgreSQL 9.5 PostgreSQL 10 PostgreSQL 11 PostgreSQL 12 PostgreSQL (latest version) Redshift SQL Data Warehouse (Azure Synapse Analytics) SQLite 3.25 SQLite 3.28 SQLite 3.30 SQLite (latest version) SQL Server 2008 SQL Server 2012 SQL Server 2014 SQL Server 2016 SQL Server 2017 SQL Server (latest version) Sybase ASE 12.5 Sybase ASE 15.5 Sybase ASE 15.7 Sybase ASE 16.0 Sybase ASE (latest version) Sybase SQL Anywhere Teradata Vertica Keywords lower case UPPER CASE Pascal Case Identifier Case Unmodified lower case lower case (if unquoted) UPPER CASE UPPER CASE (if unquoted) Identifier Quoting Always Unmodified (default quoted) Unmodified (default unquoted) Never Bind variables Named Indexed Force Indexed AS keyword in SELECT Default Off On AS keyword in FROM Default Off On (if possible) INNER keyword in JOIN Default Off On OUTER keyword in JOIN Default Off On Transformation options Join style Unmodified Oracle style to ANSI join ANSI join to Oracle style More formatting Options Coming soon!

*How does it work? The input dialect is a mixture of all of jOOQ's currently supported SQL dialects. The grammar can be found here. The output is what jOOQ would generate if you ran the input query using a given dialect. It may not actually work on the target database, if the relevant feature isn't supported by the target database and jOOQ doesn't currently emulate it. If you've found an error, or would like to suggest an improvement, please report it here, along with your input query: https://github.com/jOOQ/jOOQ/issues/new.

Cool, can I embed this in my application!? Yes! And you don't even need to use the jOOQ API. The parser can be exposed through the JDBC API. For more details, read this blog post: https://blog.jooq.org/2018/01/12/top-5-hidden-jooq-features/