---
title: "Migrare Oracle a MariaDB nel browser"
description: "Migra un database Oracle a MariaDB: converti un export di SQL Developer o SQLcl in uno script con le stesse tabelle, chiavi e dati, e un report."
canonical: https://intosql.com/it/oracle-in-mariadb
last_updated: 2026-10-15
---

# Migrare Oracle a MariaDB nel browser

Trascina il file .sql che scrive Database Export di SQL Developer o SQLcl, con le sue tabelle e istruzioni Insert, e scarica uno script per MariaDB con le stesse tabelle, chiavi, indici e dati. Ogni valore che MariaDB non può contenere così com'è, e ogni oggetto che non supporta, è elencato nel report.

[Guida alla migrazione da Oracle a MariaDB](https://intosql.com/docs/migrations/oracle-to-mariadb)

[Tipi di dati da Oracle a MariaDB](https://intosql.com/docs/types/oracle-to-mariadb)

## Cosa cambia da Oracle a MariaDB

Ogni riga è una regola che il convertitore applica, con la riga del report che scrive quando la regola cambia qualcosa nei tuoi dati.

| In Oracle | In MariaDB | Riga del report |
| --- | --- | --- |
| BOOLEAN (23ai) | tinyint(1) |  |
| VARCHAR2(n BYTE|CHAR), NVARCHAR2(n), CHAR(n), NCHAR(n), CLOB, NCLOB, LONG | varchar(n) fino a 1024 caratteri, tipi text oltre |  |
| NUMBER, NUMBER(p,s), FLOAT(b) | decimal(p,s), o bigint |  |
| INTERVAL YEAR TO MONTH, INTERVAL DAY TO SECOND | varchar(100) con il testo di Oracle, come +01-06 | `type_replaced` |
| DATE, TIMESTAMP(p) | datetime(p) |  |
| TIMESTAMP(7) to TIMESTAMP(9) | sei cifre di secondo, la settima troncata | `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) e tipi blob |  |
| ROWID, UROWID, XMLTYPE, SDO_GEOMETRY | text | `type_replaced` |
| collations that ignore case (BINARY_CI) | confronto esatto (utf8mb4_bin) | `case_insensitive_collation` |
| identity columns, and a sequence a BEFORE INSERT trigger assigns | AUTO_INCREMENT, che riparte dopo l'id più alto |  |
| identity columns the target can't count | un intero semplice | `counter_dropped` |
| CREATE SEQUENCE | CREATE SEQUENCE con le stesse opzioni |  |
| virtual columns (GENERATED ALWAYS AS ... VIRTUAL) | colonne generate, STORED se PERSISTED, altrimenti VIRTUAL |  |
| virtual columns with functions IntoSQL doesn't write, and the || operator | una colonna semplice | `generated_not_translated` |
| defaults with functions IntoSQL doesn't write (SYS_GUID(), ||) | nessun valore predefinito | `default_not_translated` |
| CHECK constraints | tradotti |  |
| CHECK constraints with functions IntoSQL doesn't write | non creato | `check_skipped` |
| CHECK constraints that are DISABLE or ENABLE NOVALIDATE | non creato | `check_not_enforced` |
| function-based, bitmap and domain indexes | non creato | `index_skipped` |
| foreign keys | chiavi esterne, caricate con FOREIGN_KEY_CHECKS=0 |  |
| foreign keys to tables the export doesn't create, and DISABLE or NOVALIDATE ones | non creato | `foreign_key_skipped` |
| partitioned tables | una tabella con le righe di ogni partizione | `partitions_dropped` |
| several schemas in one export | un database, tabelle con il nome del loro schema davanti | `schemas_merged` |
| NOT NULL columns with values that become NULL | NOT NULL rimosso | `not_null_relaxed` |
| views, synonyms, types, packages, procedures, functions and other triggers | elencati nel report | `not_converted_objects` |
| exports without CREATE TABLE (data only) | tipi ricavati dai valori | `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 | mantenuto |  |
| text that isn't valid in its encoding | i byte errati come carattere di sostituzione | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | copiato così com'è | `mojibake_suspected` |

## Carica lo script in MariaDB

Lo script crea le tabelle, copia le righe, poi aggiunge chiavi, indici e chiavi esterne, così si carica in fretta e si ferma al primo errore.

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

Le chiavi esterne vengono create come le dichiara il dump, con FOREIGN_KEY_CHECKS=0 mentre le righe si caricano, come fa mysqldump.

Per un dump grande, esegui il client sulla stessa macchina del server, e aumenta max_allowed_packet se una singola riga è molto grande.

IntoSQL Pro carica il file direttamente in MariaDB dall'app desktop o dalla riga di comando, senza scrivere uno script.

## Fai il dump di Oracle per il miglior risultato

Il convertitore legge ciò che il dump contiene. Con queste opzioni il dump conserva più dei tuoi dati:

- In SQL Developer, scegli Tools, Database Export, con DDL e il formato dati Insert. SQLcl scrive lo stesso con SET SQLFORMAT INSERT.
- Esegui ALTER SESSION SET NLS_DATE_FORMAT = 'SYYYY-MM-DD HH24:MI:SS' prima di esportare: il formato di default scrive le date senza ora né secolo.
- Un file .dmp di exp o expdp è binario: importalo in un database Oracle, per esempio Oracle Database Free in Docker, ed esportalo con SQL Developer.

## Cosa non viene convertito

Viste, package, procedure, funzioni, trigger, tipi e sinonimi sono scritti in PL/SQL. Sono elencati per nome nel report, mai rimossi in silenzio, così puoi riscriverli per MariaDB.

## Domande sulla conversione da Oracle a MariaDB

### Il mio dump viene caricato?

No. Il convertitore funziona nel tuo browser e legge il dump dal tuo disco a pezzi, quindi non lascia mai il tuo computer. Anche l'app desktop e la riga di comando convertono sul tuo computer.

### Quanto può essere grande il dump?

Il convertitore non tiene mai l'intero dump in memoria: legge il file due volte, per intervalli, e scrive lo script man mano. I dump di più gigabyte si convertono nel browser, nell'app desktop e con la riga di comando.

### Posso convertire un file .dmp di exp o expdp?

Non direttamente: Data Pump e l'Export originale scrivono un formato binario che legge solo Oracle. Importalo in un qualsiasi database Oracle, Oracle Database Free gira in Docker, ed esportalo con Database Export di SQL Developer o con SQLcl. Il convertitore lo segnala quando riceve un file .dmp.

### Da quali versioni di Oracle può provenire l'export?

Export di SQL Developer e SQLcl, con le definizioni di tabella di DBMS_METADATA, da Oracle 11g in poi. Ogni export di test viene da Oracle 21c e 23ai, in sessioni americane, tedesche e ISO, ed è confrontato con la sorgente cella per cella.

### Cosa succede a NUMBER, DATE e agli altri tipi di Oracle?

NUMBER diventa decimal, o bigint per i numeri interi, e testo oltre le 65 cifre; DATE diventa datetime, mantenendo l'ora; CLOB longtext, BLOB blob, e gli intervalli mantengono il testo di Oracle. NaN e Infinity diventano NULL e il report li conta.

### Le colonne identity e le sequenze vengono mantenute?

Sì. Le colonne identity diventano AUTO_INCREMENT e ripartono dopo l'id più alto; le sequenze diventano sequenze di MariaDB, e i valori di default che ne usano una continuano a usarla.

### E package, procedure e trigger PL/SQL?

Sono elencati per nome nel report e non vengono convertiti, perché ogni database li scrive nel proprio linguaggio.

### Su quali versioni di MariaDB si carica lo script?

MariaDB 10.11 e successive. Ogni export di test si carica su 10.11 e 11.4, fermandosi al primo errore se qualcosa va storto.

## Da Oracle

- [Da Oracle a PostgreSQL](https://intosql.com/it/oracle-in-postgresql)
- [Da Oracle a MySQL](https://intosql.com/it/oracle-in-mysql)
- [Da Oracle a SQLite](https://intosql.com/it/oracle-in-sqlite)
- [Da Oracle a SQL Server](https://intosql.com/it/oracle-in-sql-server)
- [Da Oracle a Oracle](https://intosql.com/it/oracle-in-oracle)

## Verso MariaDB

- [Da MySQL a MariaDB](https://intosql.com/it/mysql-in-mariadb)
- [Da MariaDB a MariaDB](https://intosql.com/it/mariadb-in-mariadb)
- [Da PostgreSQL a MariaDB](https://intosql.com/it/postgresql-in-mariadb)
- [Da SQL Server a MariaDB](https://intosql.com/it/sql-server-in-mariadb)
- [Da SQLite a MariaDB](https://intosql.com/it/sqlite-in-mariadb)

## Guida e tutte le coppie

- [Da MariaDB a Oracle](https://intosql.com/it/mariadb-in-oracle)
- [Guida alla migrazione da Oracle a MariaDB](https://intosql.com/docs/migrations/oracle-to-mariadb)
- [Tipi di dati da Oracle a MariaDB](https://intosql.com/docs/types/oracle-to-mariadb)
- [Tutte le coppie di database](https://intosql.com/it/migrazione-database)
