Zum Inhalt springen

JSON in Oracle umwandeln

Leg deine JSON-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.

Deine Datei
jsonpedidos_2024.jsonBeispieldatei, 771 B
Deine Datenbank

4 Zeilen konvertiert, 2 Korrekturen, keine abgelehnt

Anzeigen
Die ersten Zeilen von pedidos_2024.json, jede Korrektur markiert
Zeile
2000481Peña Muñoz2024-02-03T10:15:00Z1234.5true
3000482José Ángel Ruiz2024-02-15T16:40:00Z99.9falseEntrega en la tarde
4000483Zoë Ortíz2024-02-29T09:05:00Z12true
5000484Ñuño Castañeda2024-03-11T13:30:00Z980.75síFactura con "RFC"
-- Written by IntoSQL for Oracle.

SET DEFINE OFF

CREATE TABLE pedidos_2024 (
    pedido VARCHAR2(8 CHAR) NOT NULL,
    cliente VARCHAR2(16 CHAR) NOT NULL,
    fecha TIMESTAMP WITH TIME ZONE NOT NULL,
    total NUMBER(6,2) NOT NULL,
    pagado NUMBER(1) NOT NULL,
    notas VARCHAR2(32 CHAR)
);

INSERT ALL
    INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES ('000481', 'Peña Muñoz', TIMESTAMP '2024-02-03 10:15:00 +00:00', 1234.5, 1, NULL)
    INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES ('000482', 'José Ángel Ruiz', TIMESTAMP '2024-02-15 16:40:00 +00:00', 99.9, 0, 'Entrega en la tarde')
    INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES ('000483', 'Zoë Ortíz', TIMESTAMP '2024-02-29 09:05:00 +00:00', 12, 1, NULL)
    INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES ('000484', 'Ñuño Castañeda', TIMESTAMP '2024-03-11 13:30:00 +00:00', 980.75, 1, 'Factura con "RFC"')
SELECT 1 FROM DUAL;

COMMIT;

Korrekturen

  1. Führende Nullen in "pedido" behalten: 000481 bleibt 000481, gespeichert als Text.
  2. "pagado" enthält Ja- und Nein-Wörter (sí), gespeichert als Boolean.

Deine Datei wird auf diesem Computer umgewandelt und nie hochgeladen.

Weitere Beispiele:

Von JSON zu Oracle, Spalte für Spalte

Das Beispiel oben, pedidos_2024.json, 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 DateiErster WertSpalteTyp in OracleIm Skript
pedido000481pedidoVARCHAR2(8 CHAR)'000481'
clientePeña MuñozclienteVARCHAR2(16 CHAR)'Peña Muñoz'
fecha2024-02-03T10:15:00ZfechaTIMESTAMP WITH TIME ZONETIMESTAMP '2024-02-03 10:15:00 +00:00'
total1234.5totalNUMBER(6,2)1234.5
pagadotruepagadoNUMBER(1)1
notas-notasVARCHAR2(32 CHAR)NULL

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 @pedidos_2024.oracle.sql

Das 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 JSON-Dateien und Oracle wissen solltest

Was IntoSQL in JSON-Dateien liest

  • Die Datei kann ein Array von Objekten sein, ein Objekt, das dieses Array unter einem Schlüssel wie data enthält, oder ein Objekt pro Zeile (NDJSON).
  • Jeder Schlüssel wird zu einer Spalte. Objekte und Arrays innerhalb eines Werts bleiben als JSON-Text erhalten.
  • Zahlen behalten ihre exakten Ziffern, und ISO-8601-Datumswerte werden zu Datums- oder Zeitstempelwerten.

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

WertOracle
Ja und neinNUMBER(1)
Ganze ZahlenNUMBER(10)
Große ganze ZahlenNUMBER(19)
DezimalzahlenNUMBER(p,s)
GleitkommazahlenBINARY_DOUBLE
DatumswerteDATE
UhrzeitenINTERVAL DAY(0) TO SECOND
Datum mit UhrzeitTIMESTAMP
Datum mit Uhrzeit und ZeitversatzTIMESTAMP WITH TIME ZONE
TextVARCHAR2(n CHAR)CLOB

Fragen zu JSON zu Oracle

Keine Antwort gefunden? Schreib uns über die Kontaktseite, und ein Mensch antwortet. Kontaktseite

Wie konvertiere ich JSON 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.

Welche Form braucht die JSON-Datei?

Ein Array von Objekten, ein Objekt, das dieses Array unter einem Schlüssel wie data enthält, oder ein Objekt pro Zeile (NDJSON). Jeder Schlüssel wird zu einer Spalte.

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 000481 bleibt Text, also speichert Oracle ihn als VARCHAR2(8 CHAR), und das Skript schreibt ihn als '000481'.

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 JSON-Datei sein?

NDJSON, ein Objekt pro Zeile, wird beim Einströmen gelesen, daher funktionieren Dateien von mehreren Gigabyte im Browser. Ein JSON-Dokument wird vollständig gelesen, seine Grenze ist also der Speicher, den der Browser dieser Seite gibt. Die Desktop-App und die Kommandozeile nehmen Dateien jeder Größe.