---
title: "Oracle naar MariaDB migreren in je browser"
description: "Migreer een Oracle-database naar MariaDB: zet een export van SQL Developer of SQLcl om naar een script met dezelfde tabellen, sleutels en data, met een rapport."
canonical: https://intosql.com/nl/oracle-naar-mariadb
last_updated: 2026-10-15
---

# Oracle naar MariaDB migreren in je browser

Zet het .sql-bestand neer dat Database Export van SQL Developer of SQLcl schrijft, met zijn tabellen en Insert-statements, en download een MariaDB-script met dezelfde tabellen, sleutels, indexen en data. Elke waarde die MariaDB niet ongewijzigd kan bevatten, en elk object dat het niet overneemt, staat in het rapport.

[Migratiehandleiding Oracle naar MariaDB](https://intosql.com/docs/migrations/oracle-to-mariadb)

[Datatypen van Oracle naar MariaDB](https://intosql.com/docs/types/oracle-to-mariadb)

## Wat er verandert van Oracle naar MariaDB

Elke rij is een regel die de converter toepast, met de rapportregel die hij schrijft als de regel iets in je data verandert.

| In Oracle | In MariaDB | Rapportregel |
| --- | --- | --- |
| BOOLEAN (23ai) | tinyint(1) |  |
| VARCHAR2(n BYTE|CHAR), NVARCHAR2(n), CHAR(n), NCHAR(n), CLOB, NCLOB, LONG | varchar(n) tot 1024 tekens, daarboven text-typen |  |
| NUMBER, NUMBER(p,s), FLOAT(b) | decimal(p,s) of bigint |  |
| INTERVAL YEAR TO MONTH, INTERVAL DAY TO SECOND | varchar(100) met de tekst van Oracle, zoals +01-06 | `type_replaced` |
| DATE, TIMESTAMP(p) | datetime(p) |  |
| TIMESTAMP(7) to TIMESTAMP(9) | zes cijfers van een seconde, het zevende afgekapt | `fraction_cut` |
| TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE | datetime(p) in UTC | `moments_as_utc` |
| JSON (21c), and CLOB holding JSON | json |  |
| BLOB, RAW(n), LONG RAW | binary(n), varbinary(n) en blob-typen |  |
| ROWID, UROWID, XMLTYPE, SDO_GEOMETRY | text | `type_replaced` |
| collations that ignore case (BINARY_CI) | exacte vergelijking (utf8mb4_bin) | `case_insensitive_collation` |
| identity columns, and a sequence a BEFORE INSERT trigger assigns | AUTO_INCREMENT, verdergaand na het hoogste id |  |
| identity columns the target can't count | een geheel getal zonder teller | `counter_dropped` |
| CREATE SEQUENCE | CREATE SEQUENCE met dezelfde opties |  |
| virtual columns (GENERATED ALWAYS AS ... VIRTUAL) | gegenereerde kolommen, STORED bij PERSISTED, anders VIRTUAL |  |
| virtual columns with functions IntoSQL doesn't write, and the || operator | een gewone kolom | `generated_not_translated` |
| defaults with functions IntoSQL doesn't write (SYS_GUID(), ||) | geen standaardwaarde | `default_not_translated` |
| CHECK constraints | vertaald |  |
| CHECK constraints with functions IntoSQL doesn't write | niet aangemaakt | `check_skipped` |
| CHECK constraints that are DISABLE or ENABLE NOVALIDATE | niet aangemaakt | `check_not_enforced` |
| function-based, bitmap and domain indexes | niet aangemaakt | `index_skipped` |
| foreign keys | refererende sleutels, geladen met FOREIGN_KEY_CHECKS=0 |  |
| foreign keys to tables the export doesn't create, and DISABLE or NOVALIDATE ones | niet aangemaakt | `foreign_key_skipped` |
| partitioned tables | één tabel met de rijen van elke partitie | `partitions_dropped` |
| several schemas in one export | één database, tabellen met de naam van hun schema ervoor | `schemas_merged` |
| NOT NULL columns with values that become NULL | NOT NULL weggelaten | `not_null_relaxed` |
| views, synonyms, types, packages, procedures, functions and other triggers | vermeld in het rapport | `not_converted_objects` |
| exports without CREATE TABLE (data only) | typen afgeleid uit de waarden | `no_schema` |
| expressions in INSERT values other than the ones exports write | NULL | `expression_value` |
| types IntoSQL doesn't know, and object types | longtext | `unknown_type` |
| dates before year 1 and time zones given as region names | NULL | `date_out_of_range` |
| NaN and Infinity in BINARY_FLOAT and BINARY_DOUBLE | NULL | `invalid_value_null` |
| NUL characters in text | behouden |  |
| text that isn't valid in its encoding | de foute bytes als het vervangingsteken | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | ongewijzigd gekopieerd | `mojibake_suspected` |

## Het script in MariaDB laden

Het script maakt de tabellen aan, kopieert de rijen en voegt daarna sleutels, indexen en refererende sleutels toe, zodat het snel laadt en bij de eerste fout stopt.

```shell
mariadb --default-character-set=utf8mb4 mydb < oracle.mariadb.sql
```

Refererende sleutels worden aangemaakt zoals de dump ze declareert, met FOREIGN_KEY_CHECKS=0 terwijl de rijen laden, zoals mysqldump doet.

Voer bij een grote dump de client uit op dezelfde machine als de server, en verhoog max_allowed_packet als één rij erg groot is.

IntoSQL Pro laadt het bestand rechtstreeks in MariaDB vanuit de desktopapp of de opdrachtregel, zonder een script te schrijven.

## Een dump van Oracle maken voor het beste resultaat

De converter leest wat de dump bevat. Met deze opties blijft er meer van je data in staan:

- Kies in SQL Developer Tools, Database Export, met DDL en het dataformaat Insert. SQLcl schrijft hetzelfde met SET SQLFORMAT INSERT.
- Voer ALTER SESSION SET NLS_DATE_FORMAT = 'SYYYY-MM-DD HH24:MI:SS' uit voordat je exporteert: het standaardformaat schrijft datums zonder tijd of eeuw.
- Een .dmp-bestand van exp of expdp is binair: importeer het in een Oracle-database, bijvoorbeeld Oracle Database Free in Docker, en exporteer het met SQL Developer.

## Wat niet wordt geconverteerd

Weergaven, packages, procedures, functies, triggers, typen en synoniemen zijn geschreven in PL/SQL. Ze staan op naam in het rapport en worden nooit stilletjes weggelaten, zodat je ze kunt herschrijven voor MariaDB.

## Vragen over Oracle naar MariaDB

### Wordt mijn dump geüpload?

Nee. De converter draait in je browser en leest de dump in delen van je schijf, dus hij verlaat je computer nooit. De desktopapp en de opdrachtregel converteren ook op je computer.

### Hoe groot mag de dump zijn?

De converter houdt nooit de hele dump in het geheugen: hij leest het bestand twee keer, in bereiken, en schrijft het script gaandeweg. Dumps van meerdere gigabytes worden geconverteerd in de browser, in de desktopapp en met de opdrachtregel.

### Kan ik een .dmp-bestand van exp of expdp converteren?

Niet direct: Data Pump en de oorspronkelijke Export schrijven een binair formaat dat alleen Oracle leest. Importeer het bestand in een willekeurige Oracle-database (Oracle Database Free draait in Docker) en exporteer het met Database Export van SQL Developer of met SQLcl. De converter meldt dat wanneer hij een .dmp-bestand krijgt.

### Van welke Oracle-versies kan de export komen?

Exports uit SQL Developer en SQLcl, met de tabeldefinities van DBMS_METADATA, vanaf Oracle 11g. Elke testexport komt van Oracle 21c en 23ai, in Amerikaanse, Duitse en ISO-sessies, en wordt cel voor cel met zijn bron vergeleken.

### Wat gebeurt er met NUMBER, DATE en de andere Oracle-typen?

NUMBER wordt decimal, of bigint voor gehele getallen, en tekst boven 65 cijfers; DATE wordt datetime en behoudt zijn tijd; CLOB wordt longtext, BLOB blob, en intervallen behouden de tekst van Oracle. NaN en Infinity worden NULL en het rapport telt ze.

### Blijven identity-kolommen en sequences behouden?

Ja. Identity-kolommen worden AUTO_INCREMENT en gaan verder na het hoogste id; sequences worden MariaDB-sequences, en standaardwaarden die er een waarde uit halen, blijven dat doen.

### En PL/SQL-packages, procedures en triggers?

Ze staan op naam in het rapport en worden niet geconverteerd, omdat elke database ze in een eigen taal schrijft.

### Op welke MariaDB-versies laadt het script?

MariaDB 10.11 en later. Elke testexport laadt op 10.11 en 11.4 en stopt bij de eerste fout als er iets misgaat.

## Vanuit Oracle

- [Oracle naar PostgreSQL](https://intosql.com/nl/oracle-naar-postgresql)
- [Oracle naar MySQL](https://intosql.com/nl/oracle-naar-mysql)
- [Oracle naar SQLite](https://intosql.com/nl/oracle-naar-sqlite)
- [Oracle naar SQL Server](https://intosql.com/nl/oracle-naar-sql-server)
- [Oracle naar Oracle](https://intosql.com/nl/oracle-naar-oracle)

## Naar MariaDB

- [MySQL naar MariaDB](https://intosql.com/nl/mysql-naar-mariadb)
- [MariaDB naar MariaDB](https://intosql.com/nl/mariadb-naar-mariadb)
- [PostgreSQL naar MariaDB](https://intosql.com/nl/postgresql-naar-mariadb)
- [SQL Server naar MariaDB](https://intosql.com/nl/sql-server-naar-mariadb)
- [SQLite naar MariaDB](https://intosql.com/nl/sqlite-naar-mariadb)

## Handleiding en elke combinatie

- [MariaDB naar Oracle](https://intosql.com/nl/mariadb-naar-oracle)
- [Migratiehandleiding Oracle naar MariaDB](https://intosql.com/docs/migrations/oracle-to-mariadb)
- [Datatypen van Oracle naar MariaDB](https://intosql.com/docs/types/oracle-to-mariadb)
- [Elke databasecombinatie](https://intosql.com/nl/databasemigratie)
