MySQL
Oracle

MySQL to Oracle Converter

Tables, keys, and rows into Oracle Database, with identity columns and a fast bulk load - once, or on a schedule while you cut over.

Version
5.4.0
Release Date
Oct. 25, 2026
Size
74.2 MB
Platform
Windows 10 or later

Rather not run it yourself?

Let us do the migration →

Move a MySQL database into Oracle without writing the Oracle schema by hand. DBConvert proposes an Oracle type for every column, creates the tables, keys, and indexes in the schema you pick, and loads the rows.

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

Built for loading into Oracle

Fast bulk load

A table the run creates is loaded with Oracle's direct path when its column types allow it, several threads at once, and its indexes are built once at the end.

Bad rows named, not lost

A row Oracle refuses is skipped, and the first ten are named by key in the log. The rest of the table still arrives, each row once.

Existing tables

Load into tables you created yourself. The rows are appended, and a table already in Oracle is used under its own name.

Convert once, or synchronize during the cutover

Both modes are part of the same DBConvert application.

One-time conversion

Create the Oracle schema and load the selected tables. Use a row filter when only part of a table belongs in Oracle, and save the job to repeat the test load.

Scheduled synchronization

Keep MySQL in use while Oracle is tested. Only changed rows move, in one direction or in both, and the job runs from Task Scheduler with --run-job.

How MySQL types map to Oracle

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

In MySQL DBConvert default in Oracle What needs attention
AUTO_INCREMENT On Oracle 12c and later, an identity column, GENERATED BY DEFAULT, whose next value starts after the copied keys. On 11g the key stays a plain NUMBER. None: new rows inserted after the load get new keys.
DEFAULT CURRENT_TIMESTAMP DEFAULT SYSTIMESTAMP. None.
DECIMAL, integer types, BOOL NUMBER, keeping the precision and scale of a DECIMAL. A boolean becomes a 0 or 1 number.
FLOAT, DOUBLE BINARY_FLOAT and BINARY_DOUBLE. None.
DATETIME, DATE, TIME DATE. TIMESTAMP stays TIMESTAMP. An Oracle DATE keeps whole seconds; choose TIMESTAMP for fractions. Oracle has no time-of-day type, so a TIME value is stored as a DATE.
VARCHAR(n) VARCHAR2(n CHAR), counted in characters, so non-Latin text fits. Over 4,000 characters, CLOB. Oracle still caps VARCHAR2 at 4,000 bytes. A longer value is refused and its row named.
TEXT, MEDIUMTEXT, LONGTEXT TEXT becomes VARCHAR2(4000); the larger two become CLOB. Switch a TEXT column to CLOB in the review when it holds longer values.
Empty strings Loaded. An empty string bound for a NOT NULL column is written as a single NUL character so the row still loads. Oracle treats an empty string as NULL; check queries that compare with ''.
Lower-case names Created in Oracle's upper case, so queries work without quotes. Names longer than Oracle allows (30 characters before 12.2) are flagged before the run.

Stored routines need a separate pass

The migration covers tables, their columns, indexes, and foreign keys. MySQL procedures, functions, triggers, and views stay in the source and are rewritten in PL/SQL by hand.

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

MySQL

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

Oracle

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

How to migrate MySQL to Oracle

1

Setup: connect MySQL and Oracle

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 source and destination connections side by side, and the job name

MySQL source

Use the MySQL connection guide for local MySQL or MariaDB, or read from Amazon RDS / Aurora for MySQL, Azure Database for MySQL, or Google Cloud SQL for MySQL.

Oracle target

Enter the host, port, and service name, choose Connect as, and pick the target schema. The Oracle client ships with DBConvert. See Oracle connection settings.

Move MySQL data into Oracle

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

Windows Windows 10 or later · 74.2 MB