Converter JSON para Oracle
Solte seu arquivo JSON e receba um script para Oracle com comandos CREATE TABLE e INSERT. Cada coluna recebe um tipo, e cada correção é listada com sua linha e coluna.
4 linhas convertidas, 2 correções, nenhuma rejeitada
| Linha | ||||||
|---|---|---|---|---|---|---|
| 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;
Correções
- Zeros à esquerda mantidos em "pedido": 000481 continua 000481, salvo como texto.
- "pagado" contém palavras de sim e não (sí), salvas como booleano.
Seu arquivo é convertido neste computador e nunca é enviado.
Outros exemplos:
De JSON para Oracle, coluna por coluna
O exemplo acima, pedidos_2024.json, como o IntoSQL o escreve para Oracle: o que cada coluna contém no arquivo, o tipo que recebe e como seu primeiro valor fica no script.
| No arquivo | Primeiro valor | Coluna | Tipo no Oracle | No script |
|---|---|---|---|---|
| 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 |
Carregue o script no Oracle
O download é um arquivo .sql simples. Execute-o com as ferramentas do próprio Oracle.
Pelo terminal
sqlplus user@//localhost/mydb @pedidos_2024.oracle.sqlO script desativa as variáveis de substituição (SET DEFINE OFF), então um e comercial nos seus dados continua sendo um e comercial.
Por uma ferramenta de banco de dados
No SQL Developer, abra o script e escolha Run Script (F5).
O que saber sobre arquivos JSON e Oracle
O que o IntoSQL lê em arquivos JSON
- O arquivo pode ser um array de objetos, um objeto que guarda esse array sob uma chave como data, ou um objeto por linha (NDJSON).
- Cada chave vira uma coluna. Objetos e arrays dentro de um valor são mantidos como texto JSON.
- Os números mantêm os dígitos exatos, e datas ISO 8601 viram datas ou timestamps.
O que saber sobre Oracle
- Valores de sim e não viram NUMBER(1), com 1 ou 0, o que qualquer versão do Oracle aceita.
- Texto é VARCHAR2 com tamanho em caracteres; acima de 4000 bytes vira CLOB. O Oracle guarda texto vazio como NULL.
- As linhas são inseridas com INSERT ALL, e valores longos são divididos para que o SQL*Plus os aceite.
Como cada tipo de valor é armazenado no Oracle
| Valor | Oracle |
|---|---|
| Sim e não | NUMBER(1) |
| Números inteiros | NUMBER(10) |
| Números inteiros grandes | NUMBER(19) |
| Decimais | NUMBER(p,s) |
| Números de ponto flutuante | BINARY_DOUBLE |
| Datas | DATE |
| Horários | INTERVAL DAY(0) TO SECOND |
| Datas com hora | TIMESTAMP |
| Datas com hora e fuso | TIMESTAMP WITH TIME ZONE |
| Texto | VARCHAR2(n CHAR)CLOB |
Perguntas sobre JSON para Oracle
Não encontrou a resposta? Escreva para nós pela página de contato e uma pessoa responde. Página de contato
Como converto JSON para Oracle?
Solte seu arquivo no conversor no topo desta página. Ele encontra o cabeçalho, lê cada valor e escreve o script para Oracle, listando cada correção feita. Baixe o script e execute-o com SQL*Plus.
Qual formato o arquivo JSON precisa ter?
Um array de objetos, um objeto que guarda esse array em uma chave como data, ou um objeto por linha (NDJSON). Cada chave vira uma coluna.
Quais tipos do Oracle ele usa?
Valores sim e não viram NUMBER(1), números inteiros NUMBER(10), decimais NUMBER(p,s), datas DATE, datas com hora TIMESTAMP e texto VARCHAR2(n CHAR). Os tamanhos vêm do valor mais longo de cada coluna.
Ele mantém os zeros à esquerda no Oracle?
Sim. Um código como 000481 continua como texto, então o Oracle o guarda como VARCHAR2(8 CHAR) e o script o escreve como '000481'.
Ele carrega os dados no Oracle sem um script?
Não. Baixe o script e execute-o com SQL*Plus. A carga sem script funciona com PostgreSQL, MySQL, MariaDB e SQLite, pelo app para desktop ou pela linha de comando.
Qual o tamanho máximo do arquivo JSON?
NDJSON, um objeto por linha, é lido à medida que chega, então arquivos de vários gigabytes funcionam no navegador. Um documento JSON é lido inteiro, então o limite é a memória que o navegador dá a esta página. O app para desktop e a linha de comando aceitam arquivos de qualquer tamanho.