Конвертация JSON в Oracle
Перетащите файл JSON, чтобы получить скрипт для Oracle с командами CREATE TABLE и INSERT. Каждый столбец получает тип, а каждое исправление указано со строкой и столбцом.
4 строки конвертированы, 2 исправления, ни одна не отклонена
| Строка | ||||||
|---|---|---|---|---|---|---|
| 2 | 000481 | Peña Muñoz | 2024-02-03T10:15:00Z | 1234.5 | true | |
| 3 | 000482 | José Ángel Ruiz | 2024-02-15T16:40:00Z | 99.9 | false | Entrega en la tarde |
| 4 | 000483 | Zoë Ortíz | 2024-02-29T09:05:00Z | 12 | true | |
| 5 | 000484 | Ñuño Castañeda | 2024-03-11T13:30:00Z | 980.75 | sí | 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;
Исправления
- В "pedido" сохранены ведущие нули: 000481 остается 000481 и хранится как текст.
- "pagado" содержит слова да и нет (sí), они сохранены как логические значения.
Файл конвертируется на этом компьютере и никуда не загружается.
Другие примеры:
Из JSON в Oracle, столбец за столбцом
Пример выше, pedidos_2024.json, в том виде, в котором IntoSQL записывает его для Oracle: что хранит каждый столбец в файле, какой тип он получает и как его первое значение попадает в скрипт.
| В файле | Первое значение | Столбец | Тип в Oracle | В скрипте |
|---|---|---|---|---|
| pedido | 000481 | pedido | VARCHAR2(8 CHAR) | '000481' |
| cliente | Peña Muñoz | cliente | VARCHAR2(16 CHAR) | 'Peña Muñoz' |
| fecha | 2024-02-03T10:15:00Z | fecha | TIMESTAMP WITH TIME ZONE | TIMESTAMP '2024-02-03 10:15:00 +00:00' |
| total | 1234.5 | total | NUMBER(6,2) | 1234.5 |
| pagado | true | pagado | NUMBER(1) | 1 |
| notas | - | notas | VARCHAR2(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 читается целиком, поэтому его предел - память, которую браузер выделяет этой странице. Приложение для компьютера и командная строка принимают файлы любого размера.