Vai al contenuto

Convertire CSV in Oracle

Trascina il tuo file CSV per ottenere uno script Oracle con istruzioni CREATE TABLE e INSERT. Ogni colonna riceve un tipo e ogni correzione è elencata con la sua riga e colonna.

Il tuo file
csvventas_2024.csvFile di esempio, 357 B
Il tuo database

5 righe convertite, 8 correzioni, nessuna rifiutata

Mostra
Le prime righe di ventas_2024.csv, con ogni correzione segnata
Riga
500412Peña MuñozMérida15/02/20241.234,50sí
600413José Ángel RuizLeón03/02/202499,90no
700414Zoë OrtízQuerétaro29/02/2024N/Así
800415Ñuño CastañedaOaxaca28/02/20247,25no
900416Iñaki OlaizolaMazatlán11/03/2024980,75sí
-- Written by IntoSQL for Oracle.

SET DEFINE OFF

CREATE TABLE ventas_2024 (
    folio VARCHAR2(8 CHAR) NOT NULL,
    cliente VARCHAR2(16 CHAR) NOT NULL,
    ciudad VARCHAR2(16 CHAR) NOT NULL,
    fecha DATE NOT NULL,
    importe NUMBER(6,2),
    pagado NUMBER(1) NOT NULL
);

INSERT ALL
    INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES ('00412', 'Peña Muñoz', 'Mérida', DATE '2024-02-15', 1234.50, 1)
    INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES ('00413', 'José Ángel Ruiz', 'León', DATE '2024-02-03', 99.90, 0)
    INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES ('00414', 'Zoë Ortíz', 'Querétaro', DATE '2024-02-29', NULL, 1)
    INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES ('00415', 'Ñuño Castañeda', 'Oaxaca', DATE '2024-02-28', 7.25, 0)
    INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES ('00416', 'Iñaki Olaizola', 'Mazatlán', DATE '2024-03-11', 980.75, 1)
SELECT 1 FROM DUAL;

COMMIT;

Correzioni

  1. Il file era codificato in windows‑1252; è stato convertito in UTF-8.
  2. L'intestazione è alla riga 4; le righe sopra sono state escluse.
  3. La riga 10 ("TOTAL") è un totale, quindi è stata esclusa.
  4. Zeri iniziali mantenuti in "Folio": 00412 resta 00412, salvato come testo.
  5. 15/02/2024 dimostra che le date in "Fecha" hanno prima il giorno, quindi 03/02/2024 si legge come 2024‑02‑03.
  6. I numeri in "Importe" usano la virgola decimale: 1.234,50 si legge come 1234.50.
  7. N/A in "Importe" letti come vuoti (1 su 5 valori).
  8. "Pagado" contiene parole sì e no (sí, no), salvate come booleano.

Il tuo file viene convertito su questo computer e non viene mai caricato.

Altri esempi:

Da CSV a Oracle, colonna per colonna

L'esempio qui sopra, ventas_2024.csv, come IntoSQL lo scrive per Oracle: cosa contiene ogni colonna nel file, il tipo che riceve e come il suo primo valore finisce nello script.

Nel filePrimo valoreColonnaTipo OracleNello script
Folio00412folioVARCHAR2(8 CHAR)'00412'
ClientePeña MuñozclienteVARCHAR2(16 CHAR)'Peña Muñoz'
CiudadMéridaciudadVARCHAR2(16 CHAR)'Mérida'
Fecha15/02/2024fechaDATEDATE '2024-02-15'
Importe1.234,50importeNUMBER(6,2)1234.50
PagadosípagadoNUMBER(1)1

Carica lo script in Oracle

Il download è un semplice file .sql. Eseguilo con gli strumenti di Oracle.

Da un terminale

sqlplus user@//localhost/mydb @ventas_2024.oracle.sql

Lo script disattiva le variabili di sostituzione (SET DEFINE OFF), così una e commerciale nei tuoi dati resta tale.

Da uno strumento per database

In SQL Developer, apri lo script e scegli Run Script (F5).

Cosa sapere sui file CSV e su Oracle

Cosa legge IntoSQL nei file CSV

  • La codifica viene rilevata, comprese Windows-1252 e UTF-16, così accenti e ñ arrivano intatti.
  • Il separatore viene rilevato: virgola, punto e virgola, tabulazione o barra verticale. Con il punto e virgola, le virgole decimali come 1.234,50 vengono lette come numeri.
  • I valori tra virgolette possono contenere separatori e a capo.

Cosa sapere su Oracle

  • I valori sì e no diventano NUMBER(1), con 1 o 0, che ogni versione di Oracle accetta.
  • Il testo è VARCHAR2 con una lunghezza in caratteri; oltre 4000 byte diventa CLOB. Oracle salva il testo vuoto come NULL.
  • Le righe vengono inserite con INSERT ALL, e i valori lunghi vengono divisi perché SQL*Plus li accetti.

Come viene salvato ogni tipo di valore in Oracle

ValoreOracle
Sì e noNUMBER(1)
Numeri interiNUMBER(10)
Numeri interi grandiNUMBER(19)
DecimaliNUMBER(p,s)
Numeri in virgola mobileBINARY_DOUBLE
DateDATE
OrariINTERVAL DAY(0) TO SECOND
Date con oraTIMESTAMP
Date con ora e fusoTIMESTAMP WITH TIME ZONE
TestoVARCHAR2(n CHAR)CLOB

Domande su CSV in Oracle

Non trovi la risposta? Scrivici dalla pagina dei contatti e ti risponde una persona. Pagina dei contatti

Come converto CSV in Oracle?

Trascina il file sul convertitore in cima a questa pagina. Trova l'intestazione, legge ogni valore e scrive lo script Oracle, elencando ogni correzione fatta. Scarica lo script ed eseguilo con SQL*Plus.

E se il mio CSV usa punti e virgola o tabulazioni?

Il separatore viene rilevato: virgola, punto e virgola, tabulazione o barra verticale. Puoi anche impostarlo in Altre opzioni. Con il punto e virgola, le virgole decimali come 1.234,50 vengono lette come numeri.

Quali tipi Oracle usa?

I valori sì e no diventano NUMBER(1), i numeri interi NUMBER(10), i decimali NUMBER(p,s), le date DATE, le date con ora TIMESTAMP e il testo VARCHAR2(n CHAR). Le dimensioni dipendono dal valore più lungo di ogni colonna.

Mantiene gli zeri iniziali in Oracle?

Sì. Un codice come 00412 resta testo, quindi Oracle lo salva come VARCHAR2(8 CHAR) e lo script lo scrive come '00412'.

Può caricare i dati in Oracle senza uno script?

No. Scarica lo script ed eseguilo con SQL*Plus. Il caricamento senza script funziona per PostgreSQL, MySQL, MariaDB e SQLite, dall'app desktop o dalla riga di comando.

Quanto può essere grande il file CSV?

Il browser legge il CSV man mano che arriva, quindi funzionano file di diversi gigabyte. Su un portatile Apple M4 la riga di comando converte un CSV di 174 MB con un milione di righe in meno di un secondo.