SQL Dialect Converter

Convert SQL between Oracle, PostgreSQL, MySQL, MariaDB, and SQL Server locally in your browser.

Ready to convert.

Converted SQL

Engine version 0.6.3

Converted SQL will appear here.
Next steps

How to convert SQL dialects

Use this SQL dialect converter to translate one SELECT, CTE, set operation, INSERT, UPDATE, or DELETE statement between Oracle, PostgreSQL, MySQL, MariaDB, and SQL Server. Review every generated query before use.

Steps

  1. 1Choose the source and target database dialects, then paste one supported SQL statement.
  2. 2Convert the statement and inspect the raw SQL, diagnostics, compatibility risks, and detected changes.
  3. 3Update your application bindings when needed, validate the query against the target database, and copy only the reviewed output.

Conversion statuses

  • Converted. Strict conversion and validation completed without a known semantic risk; still validate it in the target environment.
  • Converted with warnings. Strict conversion completed, but one or more semantic or compatibility risks need review.
  • Manual review required. The strict conversion rejected an unsupported construct and the review fallback produced annotated SQL that requires manual verification.
  • Conversion failed. Conversion, validation, preflight, or engine execution failed; no output is available to copy.

Processed locally

SQL is processed locally in your browser. Devutilio does not upload, persist, place in a URL, or log the statement.

MariaDB uses MySQL compatibility mode. Check server-version features and MariaDB-specific syntax on the target server.

Bind parameters and cardinality

Parameter styles can change: Oracle :name, PostgreSQL $1, MySQL or MariaDB ?, and SQL Server @name. When a repeated named bind becomes multiple positional binds, update the application binding order and cardinality before deploying.

Need to clean up the source or reviewed output first? Open SQL Formatter

Semantic warnings to review

These links identify conversion patterns that require manual validation in the target database.

  • SR001 Oracle ROWNUM with ORDER BY can change which rows are selected.
  • SR002 Implicit NULL ordering differs between database engines.
  • SR003 Oracle treats empty strings as NULL.
  • SR004 Unquoted identifier case and name resolution can differ.
  • SR005 Division behavior and numeric types can differ.
  • SR006 LIKE and collation behavior can differ.
  • SR007 Date and interval arithmetic can differ.
  • SR008 MySQL-family double-pipe behavior depends on SQL mode.
  • SR009 Pagination without ORDER BY is nondeterministic.
  • SR010 MySQL may allow selected columns that stricter GROUP BY rules reject.
  • SR011 Oracle-specific hints, CONNECT BY, or MODEL clauses require manual review.
  • SR012 This MariaDB construct may depend on the deployed server version.