Excel in Oracle umwandeln
Leg deine Excel-Datei ab und erhalte ein Oracle-Skript mit CREATE TABLE- und INSERT-Anweisungen. Jede Spalte bekommt einen Typ, und jede Korrektur wird mit Zeile und Spalte aufgeführt.
4 Zeilen konvertiert, 10 Korrekturen, keine abgelehnt
| Zeile | ||||||
|---|---|---|---|---|---|---|
| 5 | 00127 | Peña Muñoz | 01234 | 03/02/2024 | sí | 1.234,50 |
| 6 | 00128 | José Ángel | 09870 | 15/02/2024 | no | N/A |
| 7 | 00129 | Zoë Ortíz | 44100 | 29/02/2024 | sí | -12,00 |
| 8 | 00130 | Ñuño Castañeda | 06700 | 11/03/2024 | no | 980,75 |
-- Written by IntoSQL for Oracle.
SET DEFINE OFF
CREATE TABLE clientes_2024 (
no_cliente VARCHAR2(8 CHAR) NOT NULL,
nombre VARCHAR2(16 CHAR) NOT NULL,
c_p VARCHAR2(8 CHAR) NOT NULL,
alta DATE NOT NULL,
activo NUMBER(1) NOT NULL,
saldo NUMBER(6,2)
);
COMMENT ON COLUMN clientes_2024.no_cliente IS 'Nº Cliente';
COMMENT ON COLUMN clientes_2024.c_p IS 'C.P.';
INSERT ALL
INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES ('00127', 'Peña Muñoz', '01234', DATE '2024-02-03', 1, 1234.50)
INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES ('00128', 'José Ángel', '09870', DATE '2024-02-15', 0, NULL)
INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES ('00129', 'Zoë Ortíz', '44100', DATE '2024-02-29', 1, -12.00)
INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES ('00130', 'Ñuño Castañeda', '06700', DATE '2024-03-11', 0, 980.75)
SELECT 1 FROM DUAL;
COMMIT;
Korrekturen
- Die Kopfzeile ist in Zeile 4; die Zeilen darüber wurden ausgelassen.
- Zeile 9 ("TOTAL") ist eine Summe und wurde deshalb ausgelassen.
- Spalte "Nº Cliente" heißt jetzt no_cliente, damit Oracle sie ohne Anführungszeichen liest.
- Spalte "C.P." heißt jetzt c_p, damit Oracle sie ohne Anführungszeichen liest.
- Führende Nullen in "Nº Cliente" behalten: 00127 bleibt 00127, gespeichert als Text.
- Führende Nullen in "C.P." behalten: 01234 bleibt 01234, gespeichert als Text.
- 15/02/2024 belegt, dass die Datumsangaben in "Alta" mit dem Tag beginnen, also wird 03/02/2024 als 2024‑02‑03 gelesen.
- "Activo" enthält Ja- und Nein-Wörter (sí, no), gespeichert als Boolean.
- Zahlen in "Saldo" nutzen ein Dezimalkomma: 1.234,50 wird als 1234.50 gelesen.
- N/A in "Saldo" als leer gelesen (1 von 4 Werten).
Deine Datei wird auf diesem Computer umgewandelt und nie hochgeladen.
Weitere Beispiele:
Von Excel zu Oracle, Spalte für Spalte
Das Beispiel oben, clientes_2024.xlsx, so wie IntoSQL es für Oracle schreibt: was jede Spalte in der Datei enthält, welchen Typ sie bekommt und wie ihr erster Wert im Skript landet.
| In der Datei | Erster Wert | Spalte | Typ in Oracle | Im Skript |
|---|---|---|---|---|
| Nº Cliente | 00127 | no_cliente | VARCHAR2(8 CHAR) | '00127' |
| Nombre | Peña Muñoz | nombre | VARCHAR2(16 CHAR) | 'Peña Muñoz' |
| C.P. | 01234 | c_p | VARCHAR2(8 CHAR) | '01234' |
| Alta | 03/02/2024 | alta | DATE | DATE '2024-02-03' |
| Activo | sí | activo | NUMBER(1) | 1 |
| Saldo | 1.234,50 | saldo | NUMBER(6,2) | 1234.50 |
Das Skript in Oracle laden
Der Download ist eine einfache .sql-Datei. Führe sie mit den Werkzeugen von Oracle aus.
Aus einem Terminal
sqlplus user@//localhost/mydb @clientes_2024.oracle.sqlDas Skript schaltet Substitutionsvariablen aus (SET DEFINE OFF), damit ein kaufmännisches Und in deinen Daten erhalten bleibt.
Aus einem Datenbank-Tool
Öffne das Skript in SQL Developer und wähle Run Script (F5).
Was du über Excel-Dateien und Oracle wissen solltest
Was IntoSQL in Excel-Dateien liest
- Die Kopfzeile wird auch gefunden, wenn Titel oder Notizen darüber stehen, und eine Summenzeile am Ende wird weggelassen.
- Als Excel-Seriennummern gespeicherte Datumswerte werden zu echten Datumswerten, im 1900- wie im 1904-Datumssystem.
- Codes mit führenden Nullen wie 00127 bleiben Text. Hat eine Arbeitsmappe mehrere Blätter, wählst du das Blatt aus.
Was du über Oracle wissen solltest
- Ja-und-nein-Werte werden zu NUMBER(1) mit 1 oder 0, was jede Oracle-Version akzeptiert.
- Text ist VARCHAR2 mit einer Länge in Zeichen; über 4000 Bytes wird er zu CLOB. Oracle speichert leeren Text als NULL.
- Zeilen werden mit INSERT ALL eingefügt, und lange Werte werden aufgeteilt, damit SQL*Plus sie akzeptiert.
Wie jede Art von Wert in Oracle gespeichert wird
| Wert | Oracle |
|---|---|
| Ja und nein | NUMBER(1) |
| Ganze Zahlen | NUMBER(10) |
| Große ganze Zahlen | NUMBER(19) |
| Dezimalzahlen | NUMBER(p,s) |
| Gleitkommazahlen | BINARY_DOUBLE |
| Datumswerte | DATE |
| Uhrzeiten | INTERVAL DAY(0) TO SECOND |
| Datum mit Uhrzeit | TIMESTAMP |
| Datum mit Uhrzeit und Zeitversatz | TIMESTAMP WITH TIME ZONE |
| Text | VARCHAR2(n CHAR)CLOB |
Fragen zu Excel zu Oracle
Keine Antwort gefunden? Schreib uns über die Kontaktseite, und ein Mensch antwortet. Kontaktseite
Wie konvertiere ich Excel zu Oracle?
Leg deine Datei auf den Konverter oben auf dieser Seite. Er findet die Kopfzeile, liest jeden Wert und schreibt das Oracle-Skript, mit jeder Korrektur aufgelistet. Lade das Skript herunter und führe es mit SQL*Plus aus.
Welches Blatt der Arbeitsmappe wird konvertiert?
Das erste sichtbare Blatt. Hat eine Arbeitsmappe mehrere, erscheint die Option Blatt, mit der du ein anderes wählen kannst.
Welche Oracle-Typen werden verwendet?
Ja/Nein-Werte werden NUMBER(1), ganze Zahlen NUMBER(10), Dezimalzahlen NUMBER(p,s), Datumsangaben DATE, Datumsangaben mit Uhrzeit TIMESTAMP und Text VARCHAR2(n CHAR). Die Größen richten sich nach dem längsten Wert jeder Spalte.
Bleiben führende Nullen in Oracle erhalten?
Ja. Ein Code wie 00127 bleibt Text, also speichert Oracle ihn als VARCHAR2(8 CHAR), und das Skript schreibt ihn als '00127'.
Kann es die Daten ohne Skript in Oracle laden?
Nein. Lade das Skript herunter und führe es mit SQL*Plus aus. Laden ohne Skript funktioniert für PostgreSQL, MySQL, MariaDB und SQLite, aus der Desktop-App oder der Kommandozeile.
Wie groß darf die Excel-Datei sein?
Im Browser wird eine Arbeitsmappe vollständig gelesen, die Grenze ist also der Speicher, den der Browser dieser Seite gibt. Die Desktop-App und die Kommandozeile nehmen Arbeitsmappen jeder Größe; auf einem Apple-M4-Laptop konvertiert die Kommandozeile eine 117-MB-Arbeitsmappe mit einer Million Zeilen in etwa einer Sekunde.