Przejdź do treści

Konwersja JSON do Oracle

Upuść plik JSON, aby dostać skrypt Oracle z instrukcjami CREATE TABLE i INSERT. Każda kolumna dostaje typ, a każda poprawka jest wymieniona z wierszem i kolumną.

Twój plik
jsonpedidos_2024.jsonPlik przykładowy, 771 B
Twoja baza danych

4 wiersze przekonwertowane, 2 poprawki, brak odrzuconych

Pokaż
Pierwsze wiersze pliku pedidos_2024.json, z zaznaczoną każdą poprawką
Wiersz
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;

Poprawki

  1. Zachowano zera wiodące w "pedido": 000481 pozostaje 000481, zapisane jako tekst.
  2. "pagado" zawiera słowa tak i nie (sí), zapisane jako wartości logiczne.

Plik jest konwertowany na tym komputerze i nigdy nie jest wysyłany.

Inne przykłady:

Z JSON do Oracle, kolumna po kolumnie

Przykład powyżej, pedidos_2024.json, tak jak IntoSQL zapisuje go dla Oracle: co zawiera każda kolumna w pliku, jaki dostaje typ i jak jej pierwsza wartość trafia do skryptu.

W plikuPierwsza wartośćKolumnaTyp w OracleW skrypcie
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

Załaduj skrypt do Oracle

Pobierasz zwykły plik .sql. Uruchom go narzędziami Oracle.

Z terminala

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

Skrypt wyłącza zmienne podstawiania (SET DEFINE OFF), więc znak & w danych pozostaje znakiem &.

Z narzędzia bazodanowego

W SQL Developer otwórz skrypt i wybierz Run Script (F5).

Co warto wiedzieć o plikach JSON i Oracle

Co IntoSQL odczytuje w plikach JSON

  • Plik może być tablicą obiektów, obiektem, który trzyma tę tablicę pod kluczem takim jak data, albo jednym obiektem na wiersz (NDJSON).
  • Każdy klucz staje się kolumną. Obiekty i tablice wewnątrz wartości są zachowywane jako tekst JSON.
  • Liczby zachowują dokładne cyfry, a daty ISO 8601 stają się datami lub znacznikami czasu.

Co warto wiedzieć o Oracle

  • Wartości tak i nie stają się NUMBER(1) z 1 lub 0, co akceptuje każda wersja Oracle.
  • Tekst to VARCHAR2 z długością w znakach; powyżej 4000 bajtów staje się CLOB. Oracle zapisuje pusty tekst jako NULL.
  • Wiersze są wstawiane za pomocą INSERT ALL, a długie wartości są dzielone, aby SQL*Plus je zaakceptował.

Jak każdy rodzaj wartości jest zapisywany w Oracle

WartośćOracle
Tak i nieNUMBER(1)
Liczby całkowiteNUMBER(10)
Duże liczby całkowiteNUMBER(19)
Liczby dziesiętneNUMBER(p,s)
Liczby zmiennoprzecinkoweBINARY_DOUBLE
DatyDATE
GodzinyINTERVAL DAY(0) TO SECOND
Daty z godzinąTIMESTAMP
Daty z godziną i przesunięciemTIMESTAMP WITH TIME ZONE
TekstVARCHAR2(n CHAR)CLOB

Pytania o JSON do Oracle

Nie ma tu odpowiedzi? Napisz do nas przez stronę kontaktu, a odpowie człowiek. Strona kontaktu

Jak przekonwertować JSON do Oracle?

Upuść plik na konwerter u góry tej strony. Znajduje nagłówek, odczytuje każdą wartość i zapisuje skrypt Oracle, wymieniając każdą poprawkę. Pobierz skrypt i uruchom go za pomocą SQL*Plus.

Jaki kształt musi mieć plik JSON?

Tablica obiektów, obiekt zawierający taką tablicę pod kluczem, na przykład data, albo jeden obiekt w każdym wierszu (NDJSON). Każdy klucz staje się kolumną.

Jakich typów Oracle używa?

Wartości tak i nie stają się NUMBER(1), liczby całkowite NUMBER(10), liczby dziesiętne NUMBER(p,s), daty DATE, daty z godziną TIMESTAMP, a tekst VARCHAR2(n CHAR). Rozmiary wynikają z najdłuższej wartości w każdej kolumnie.

Czy zachowuje zera wiodące w Oracle?

Tak. Kod taki jak 000481 pozostaje tekstem, więc Oracle przechowuje go jako VARCHAR2(8 CHAR), a skrypt zapisuje go jako '000481'.

Czy może załadować dane do Oracle bez skryptu?

Nie. Pobierz skrypt i uruchom go za pomocą SQL*Plus. Ładowanie bez skryptu działa dla PostgreSQL, MySQL, MariaDB i SQLite, z aplikacji na komputer lub wiersza poleceń.

Jak duży może być plik JSON?

NDJSON, jeden obiekt w wierszu, jest odczytywany strumieniowo, więc w przeglądarce działają pliki o wielkości kilku gigabajtów. Dokument JSON jest odczytywany w całości, więc jego limitem jest pamięć, jaką przeglądarka daje tej stronie. Aplikacja na komputer i wiersz poleceń przyjmują pliki dowolnej wielkości.