---
title: "Oracle naar SQLite migreren in je browser"
description: "Migreer een Oracle-database naar SQLite: 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-sqlite
last_updated: 2026-10-15
---

# Oracle naar SQLite 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 SQLite-script met dezelfde tabellen, sleutels, indexen en data. Elke waarde die SQLite niet ongewijzigd kan bevatten, en elk object dat het niet overneemt, staat in het rapport.

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

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

## Wat er verandert van Oracle naar SQLite

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 SQLite | Rapportregel |
| --- | --- | --- |
| BOOLEAN (23ai) | INTEGER 0 of 1 met een CHECK |  |
| VARCHAR2(n BYTE|CHAR), NVARCHAR2(n), CHAR(n), NCHAR(n), CLOB, NCLOB, LONG | TEXT |  |
| NUMBER, NUMBER(p,s), FLOAT(b) | INTEGER, of NUMERIC, boven 15 cijfers exact als tekst | `decimal_as_text` |
| INTERVAL YEAR TO MONTH, INTERVAL DAY TO SECOND | TEXT met de tekst van Oracle, zoals +01-06 | `type_replaced` |
| DATE, TIMESTAMP(p) | DATETIME als ISO 8601-tekst, elk cijfer behouden |  |
| TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE | TIMESTAMP als ISO 8601-tekst in UTC | `moments_as_utc` |
| JSON (21c), and CLOB holding JSON | TEXT |  |
| BLOB, RAW(n), LONG RAW | BLOB |  |
| ROWID, UROWID, XMLTYPE, SDO_GEOMETRY | TEXT | `type_replaced` |
| collations that ignore case (BINARY_CI) | exacte vergelijking | `case_insensitive_collation` |
| identity columns, and a sequence a BEFORE INSERT trigger assigns | INTEGER PRIMARY KEY AUTOINCREMENT, verdergaand na het hoogste id |  |
| identity columns the target can't count | INTEGER zonder teller | `counter_dropped` |
| CREATE SEQUENCE | niet aangemaakt | `sequence_not_converted` |
| virtual columns (GENERATED ALWAYS AS ... VIRTUAL) | GENERATED ALWAYS AS, 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 | in CREATE TABLE, ongecontroleerd geladen, daarna opgesomd door PRAGMA foreign_key_check |  |
| 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 bestand, 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 | TEXT | `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 | Infinity als 9e999; NaN als 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 SQLite 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
sqlite3 -bail mydb.sqlite < oracle.sqlite.sql
```

Refererende sleutels worden in elke tabel gedeclareerd en de rijen laden met de controle op refererende sleutels uit. Daarna somt het script elke rij op die naar een niet-bestaande rij verwijst, in plaats van halverwege te mislukken.

Laad een grote dump in een nieuw bestand op een lokale schijf. Het script laadt alles in één transactie met synchronisatie uit, dus het draait op schijfsnelheid, en een laadactie die halverwege stopt, laat geen halve tabellen achter.

De opdrachtregel laadt het bestand rechtstreeks in een SQLite-database, zonder een script te schrijven. Dat is gratis.

## 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 SQLite.

## Vragen over Oracle naar SQLite

### 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 INTEGER voor gehele getallen en behoudt anders elk cijfer; DATE wordt DATETIME-tekst met zijn tijd; CLOB wordt TEXT, BLOB en RAW BLOB. Infinity blijft behouden; NaN wordt NULL.

### Blijven identity-kolommen en sequences behouden?

Een identity-kolom die de hele primaire sleutel van de tabel is, wordt INTEGER PRIMARY KEY AUTOINCREMENT en gaat verder na het hoogste id. SQLite heeft geen sequences, dus die worden gemeld.

### 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 SQLite-versies laadt het script?

SQLite 3.31 en later. Elke testexport laadt op 3.31 en 3.54 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 MariaDB](https://intosql.com/nl/oracle-naar-mariadb)
- [Oracle naar SQL Server](https://intosql.com/nl/oracle-naar-sql-server)
- [Oracle naar Oracle](https://intosql.com/nl/oracle-naar-oracle)

## Naar SQLite

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

## Handleiding en elke combinatie

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