Oracle
MySQL

Oracle to MySQL Converter

Schema, indexes, foreign keys, and rows into MySQL, MariaDB, or a managed cloud MySQL - once, or on a schedule while you cut over.

Version
5.5.0
Release Date
Oct. 31, 2026
Size
74.5 MB
Platform
Windows 10 or later

Rather not run it yourself?

Let us do the migration →

Move an Oracle schema into MySQL without writing the target schema by hand. DBConvert reads the tables of the schema you pick, proposes a MySQL type for every column, creates the tables, indexes, and foreign keys, and then copies the rows.

  • Reads Oracle Database 11.2 and later. The Oracle client ships with the application, so there is nothing else to install.
  • Writes to MySQL, MariaDB, Amazon RDS or Aurora MySQL, Azure Database for MySQL, or Google Cloud SQL for MySQL.
  • Runs on Windows as a desktop application.
  • The same download converts MySQL back into Oracle.

Connect the way your DBA hands the database over

Host, port, and service name

Enter the server, the port, and the service name. See the Oracle connection settings.

SYSDBA and SYSOPER

Choose how the session connects. An account such as SYS, which Oracle refuses as a normal session, connects as SYSDBA.

Any schema, not only your own

Pick the owner whose tables you migrate. Type it in upper case, as Oracle stores it; left blank, it is your login.

Convert once, or keep Oracle and MySQL in step during the cutover

Both modes are part of the same DBConvert application.

One-time conversion

Schema, indexes, foreign keys, and rows in one run. A large Oracle table is split by ranges of its key and read by several threads at once. A row filter limits a table to the rows you need.

Scheduled synchronization

Keep Oracle in use while the MySQL side is tested. A sync job moves only the rows that changed, in one direction or in both, and runs from Task Scheduler with --run-job.

When MySQL is the right target

Lower licensing cost

An application that uses Oracle as plain table storage can run on MySQL or MariaDB without Oracle's per-processor licence.

A web stack built on MySQL

Give reporting, a web application, or a managed cloud database a MySQL copy of the Oracle data to work with.

How Oracle types map to MySQL

These are the defaults. Every target name and type is editable in the review before the run.

In Oracle DBConvert default in MySQL What needs attention
NUMBER(p,s) DECIMAL(p,s), so money and other exact values stay exact. MySQL allows at most 30 decimal places; a wider scale is cut to 30.
NUMBER(p) The smallest integer type that holds the precision, from TINYINT to BIGINT. Above 18 digits, DECIMAL. None for the values; check application code that expects a particular integer type.
NUMBER without precision DECIMAL(65,30), which keeps both whole numbers and fractions. Narrow the column in the review if you know what it holds.
FLOAT, BINARY_DOUBLE, BINARY_FLOAT DOUBLE, or FLOAT for BINARY_FLOAT. These are binary floating point on both sides; values are approximate by design.
DATE DATETIME, because an Oracle DATE also holds the time of day. Change it to DATE only if the times are always midnight.
TIMESTAMP WITH TIME ZONE DATETIME. MySQL DATETIME has no time zone, so the offset is not kept.
VARCHAR2, NVARCHAR2, CLOB VARCHAR up to 4,000 characters; CLOB and NCLOB become LONGTEXT. Non-Latin text arrives as itself. Create the MySQL database with utf8mb4.
BLOB, RAW, LONG RAW LONGBLOB; a short RAW becomes TINYBLOB or BLOB. None.
Upper-case names Table and column names arrive as Oracle stores them, in upper case. Pick lower case or snake_case in the name rules if your MySQL code expects it.

PL/SQL needs a separate pass

The migration covers tables, their columns, indexes, and foreign keys. Packages, procedures, functions, triggers, and sequences stay in Oracle and are rewritten by hand for MySQL.

An Oracle connection that requires an SSH tunnel or TLS is refused rather than opened unprotected. For Oracle-side errors, see the Oracle troubleshooting notes.

Supported versions and services

Oracle

  • Oracle Database 11.2 and later
  • Oracle client included in the installer

MySQL

  • MySQL 5.x, 8.x; MariaDB; Percona Server
  • Amazon RDS / Aurora MySQL, Azure Database for MySQL, Google Cloud SQL

How to migrate Oracle to MySQL

1

Setup: connect Oracle and MySQL

Pick Convert or Sync, then choose the source and destination connections side by side on one screen. A connection is saved once and reused by every job.

The Setup step in DBConvert: the mode, the Oracle source and MySQL destination side by side, and the job name

Sync keeps an existing MySQL database up to date with Oracle: each run carries only the inserts, updates and deletes since the last one.

The Setup step in Sync mode for Oracle to MySQL: how changes are detected and the direction

Oracle source

Enter the host, port, and service name, choose Connect as (Normal, SYSDBA, or SYSOPER), and pick the schema to migrate. The Oracle client ships with DBConvert. See Oracle connection settings.

MySQL target

Connect to local MySQL, MariaDB, Percona Server, Amazon Aurora MySQL, Amazon RDS, or Google Cloud SQL.

2

Tables & mapping: see every MySQL type before a row moves

Pick the tables, then open one: each Oracle column shows the MySQL type it becomes. Change a type or a name in place; the line at the bottom names anything that would fail.

Tables and mapping for Oracle to MySQL: the table list and one table's columns with their MySQL types
3

Execution: start it, and the job is saved

Review what the run will do, start it, and read the log as it goes. The job stays in the list to run again or put on a schedule.

A finished Oracle to MySQL conversion: the summary and the operation log

Every option, in the guide

Naming rules, table options, row filters, scheduling and the command line work the same for every database pair, so they live in one place.

Move Oracle data into MySQL

Download the current build and run the first job against your own database.

Windows Windows 10 or later · 74.5 MB