Pular para o conteúdo

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.

Seu arquivo
jsonpedidos_2024.jsonArquivo de exemplo, 771 B
Seu banco de dados

4 linhas convertidas, 2 correções, nenhuma rejeitada

Mostrar
As primeiras linhas de pedidos_2024.json, com cada correção marcada
Linha
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;

Correções

  1. Zeros à esquerda mantidos em "pedido": 000481 continua 000481, salvo como texto.
  2. "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 arquivoPrimeiro valorColunaTipo no OracleNo 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

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.sql

O 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

ValorOracle
Sim e nãoNUMBER(1)
Números inteirosNUMBER(10)
Números inteiros grandesNUMBER(19)
DecimaisNUMBER(p,s)
Números de ponto flutuanteBINARY_DOUBLE
DatasDATE
HoráriosINTERVAL DAY(0) TO SECOND
Datas com horaTIMESTAMP
Datas com hora e fusoTIMESTAMP WITH TIME ZONE
TextoVARCHAR2(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.