Aller au contenu

Convertir JSON en Oracle

Déposez votre fichier JSON pour obtenir un script Oracle avec des instructions CREATE TABLE et INSERT. Chaque colonne reçoit un type, et chaque correction est listée avec sa ligne et sa colonne.

Votre fichier
jsonpedidos_2024.jsonFichier d'exemple, 771 o
Votre base de données

4 lignes converties, 2 corrections, aucune rejetée

Afficher
Les premières lignes de pedidos_2024.json, avec chaque correction signalée
Ligne
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;

Corrections

  1. Zéros initiaux conservés dans "pedido" : 000481 reste 000481, enregistré en texte.
  2. "pagado" contient des mots oui et non (sí), enregistrés en booléen.

Votre fichier est converti sur cet ordinateur et n'est jamais envoyé.

Autres exemples :

De JSON à Oracle, colonne par colonne

L'exemple ci-dessus, pedidos_2024.json, tel qu'IntoSQL l'écrit pour Oracle : ce que contient chaque colonne du fichier, le type qu'elle reçoit et comment sa première valeur apparaît dans le script.

Dans le fichierPremière valeurColonneType OracleDans le script
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

Charger le script dans Oracle

Le téléchargement est un simple fichier .sql. Exécutez-le avec les outils de Oracle.

Depuis un terminal

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

Le script désactive les variables de substitution (SET DEFINE OFF), donc une esperluette dans vos données reste une esperluette.

Depuis un outil de base de données

Dans SQL Developer, ouvrez le script et choisissez Run Script (F5).

Bon à savoir sur les fichiers JSON et Oracle

Ce qu'IntoSQL lit dans les fichiers JSON

  • Le fichier peut être un tableau d'objets, un objet qui contient ce tableau sous une clé comme data, ou un objet par ligne (NDJSON).
  • Chaque clé devient une colonne. Les objets et tableaux à l'intérieur d'une valeur sont gardés en texte JSON.
  • Les nombres gardent leurs chiffres exacts, et les dates ISO 8601 deviennent des dates ou des horodatages.

Bon à savoir sur Oracle

  • Les valeurs oui et non deviennent NUMBER(1), avec 1 ou 0, ce que toutes les versions d'Oracle acceptent.
  • Le texte est en VARCHAR2 avec une longueur en caractères ; au-delà de 4000 octets, il devient CLOB. Oracle stocke le texte vide comme NULL.
  • Les lignes sont insérées avec INSERT ALL, et les valeurs longues sont découpées pour que SQL*Plus les accepte.

Comment chaque type de valeur est stocké dans Oracle

ValeurOracle
Oui et nonNUMBER(1)
Nombres entiersNUMBER(10)
Grands nombres entiersNUMBER(19)
DécimauxNUMBER(p,s)
Nombres à virgule flottanteBINARY_DOUBLE
DatesDATE
HeuresINTERVAL DAY(0) TO SECOND
Dates avec heureTIMESTAMP
Dates avec heure et décalageTIMESTAMP WITH TIME ZONE
TexteVARCHAR2(n CHAR)CLOB

Questions sur JSON vers Oracle

Pas de réponse ici ? Écrivez-nous depuis la page de contact, une personne vous répond. Page de contact

Comment convertir JSON en Oracle ?

Déposez votre fichier sur le convertisseur en haut de cette page. Il trouve l'en-tête, lit chaque valeur et écrit le script Oracle, en listant chaque correction. Téléchargez le script et exécutez-le avec SQL*Plus.

Quelle forme doit avoir le fichier JSON ?

Un tableau d'objets, un objet qui contient ce tableau sous une clé comme data, ou un objet par ligne (NDJSON). Chaque clé devient une colonne.

Quels types Oracle utilise-t-il ?

Les valeurs oui et non deviennent NUMBER(1), les nombres entiers NUMBER(10), les décimaux NUMBER(p,s), les dates DATE, les dates avec heure TIMESTAMP et le texte VARCHAR2(n CHAR). Les tailles viennent de la valeur la plus longue de chaque colonne.

Garde-t-il les zéros en tête dans Oracle ?

Oui. Un code comme 000481 reste du texte, donc Oracle le stocke en VARCHAR2(8 CHAR) et le script l'écrit '000481'.

Peut-il charger les données dans Oracle sans script ?

Non. Téléchargez le script et exécutez-le avec SQL*Plus. Le chargement sans script fonctionne pour PostgreSQL, MySQL, MariaDB et SQLite, depuis l'application de bureau ou la ligne de commande.

Quelle taille peut avoir le fichier JSON ?

Le NDJSON, un objet par ligne, est lu au fil de l'eau, donc des fichiers de plusieurs gigaoctets fonctionnent dans le navigateur. Un document JSON est lu en entier : sa limite est la mémoire que le navigateur accorde à cette page. L'application de bureau et la ligne de commande acceptent des fichiers de toute taille.