Перейти к содержимому

Конвертация JSON в Oracle

Перетащите файл JSON, чтобы получить скрипт для Oracle с командами CREATE TABLE и INSERT. Каждый столбец получает тип, а каждое исправление указано со строкой и столбцом.

Ваш файл
jsonpedidos_2024.jsonПример файла, 771 Б
Ваша база данных

4 строки конвертированы, 2 исправления, ни одна не отклонена

Показать
Первые строки pedidos_2024.json, каждое исправление отмечено
Строка
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;

Исправления

  1. В "pedido" сохранены ведущие нули: 000481 остается 000481 и хранится как текст.
  2. "pagado" содержит слова да и нет (sí), они сохранены как логические значения.

Файл конвертируется на этом компьютере и никуда не загружается.

Другие примеры:

Из JSON в Oracle, столбец за столбцом

Пример выше, pedidos_2024.json, в том виде, в котором IntoSQL записывает его для Oracle: что хранит каждый столбец в файле, какой тип он получает и как его первое значение попадает в скрипт.

В файлеПервое значениеСтолбецТип в OracleВ скрипте
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

Загрузите скрипт в Oracle

Вы скачиваете обычный файл .sql. Запустите его штатными средствами Oracle.

Из терминала

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

Скрипт отключает переменные подстановки (SET DEFINE OFF), поэтому амперсанд в ваших данных остается амперсандом.

Из клиента базы данных

В SQL Developer откройте скрипт и выберите Run Script (F5).

Что нужно знать о файлах JSON и Oracle

Что IntoSQL читает в файлах JSON

  • Файл может быть массивом объектов, объектом, который хранит этот массив под ключом вроде data, или одним объектом на строку (NDJSON).
  • Каждый ключ становится столбцом. Объекты и массивы внутри значения сохраняются как текст JSON.
  • Числа сохраняют все свои цифры, а даты ISO 8601 становятся датами или метками времени.

Что нужно знать о Oracle

  • Значения да и нет становятся NUMBER(1) со значением 1 или 0, что принимает любая версия Oracle.
  • Текст хранится как VARCHAR2 с длиной в символах; свыше 4000 байт он становится CLOB. Oracle хранит пустой текст как NULL.
  • Строки вставляются через INSERT ALL, а длинные значения разбиваются, чтобы SQL*Plus их принял.

Как каждый вид значений хранится в Oracle

ЗначениеOracle
Да и нетNUMBER(1)
Целые числаNUMBER(10)
Большие целые числаNUMBER(19)
Десятичные числаNUMBER(p,s)
Числа с плавающей точкойBINARY_DOUBLE
ДатыDATE
Время сутокINTERVAL DAY(0) TO SECOND
Даты со временемTIMESTAMP
Даты со временем и смещениемTIMESTAMP WITH TIME ZONE
ТекстVARCHAR2(n CHAR)CLOB

Вопросы о JSON в Oracle

Нет ответа на ваш вопрос? Напишите нам через страницу контактов, и вам ответит человек. Страница контактов

Как конвертировать JSON в Oracle?

Перетащите файл в конвертер в верхней части этой страницы. Он находит заголовок, читает каждое значение и записывает скрипт для Oracle, перечисляя каждое исправление. Скачайте скрипт и запустите его через SQL*Plus.

Какой структуры должен быть файл JSON?

Массив объектов, объект с таким массивом под ключом вроде data или по одному объекту в строке (NDJSON). Каждый ключ становится столбцом.

Какие типы Oracle используются?

Значения да и нет становятся NUMBER(1), целые числа NUMBER(10), дробные NUMBER(p,s), даты DATE, даты со временем TIMESTAMP, а текст VARCHAR2(n CHAR). Размеры берутся по самому длинному значению в каждом столбце.

Сохраняются ли ведущие нули в Oracle?

Да. Код вроде 000481 остается текстом, поэтому Oracle хранит его как VARCHAR2(8 CHAR), а скрипт записывает как '000481'.

Можно ли загрузить данные в Oracle без скрипта?

Нет. Скачайте скрипт и запустите его через SQL*Plus. Загрузка без скрипта работает для PostgreSQL, MySQL, MariaDB и SQLite из приложения для компьютера или командной строки.

Насколько большим может быть файл JSON?

NDJSON, по одному объекту в строке, читается потоково, поэтому в браузере работают файлы в несколько гигабайт. Документ JSON читается целиком, поэтому его предел - память, которую браузер выделяет этой странице. Приложение для компьютера и командная строка принимают файлы любого размера.