Converter Excel para Oracle
Solte seu arquivo Excel 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, 10 correções, nenhuma rejeitada
| Linha | ||||||
|---|---|---|---|---|---|---|
| 5 | 00127 | Peña Muñoz | 01234 | 03/02/2024 | sí | 1.234,50 |
| 6 | 00128 | José Ángel | 09870 | 15/02/2024 | no | N/A |
| 7 | 00129 | Zoë Ortíz | 44100 | 29/02/2024 | sí | -12,00 |
| 8 | 00130 | Ñuño Castañeda | 06700 | 11/03/2024 | no | 980,75 |
-- Written by IntoSQL for Oracle.
SET DEFINE OFF
CREATE TABLE clientes_2024 (
no_cliente VARCHAR2(8 CHAR) NOT NULL,
nombre VARCHAR2(16 CHAR) NOT NULL,
c_p VARCHAR2(8 CHAR) NOT NULL,
alta DATE NOT NULL,
activo NUMBER(1) NOT NULL,
saldo NUMBER(6,2)
);
COMMENT ON COLUMN clientes_2024.no_cliente IS 'Nº Cliente';
COMMENT ON COLUMN clientes_2024.c_p IS 'C.P.';
INSERT ALL
INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES ('00127', 'Peña Muñoz', '01234', DATE '2024-02-03', 1, 1234.50)
INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES ('00128', 'José Ángel', '09870', DATE '2024-02-15', 0, NULL)
INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES ('00129', 'Zoë Ortíz', '44100', DATE '2024-02-29', 1, -12.00)
INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES ('00130', 'Ñuño Castañeda', '06700', DATE '2024-03-11', 0, 980.75)
SELECT 1 FROM DUAL;
COMMIT;
Correções
- O cabeçalho está na linha 4; as linhas acima dele ficaram de fora.
- A linha 9 ("TOTAL") é um total, então ficou de fora.
- A coluna "Nº Cliente" passa a se chamar no_cliente para que o Oracle a leia sem aspas.
- A coluna "C.P." passa a se chamar c_p para que o Oracle a leia sem aspas.
- Zeros à esquerda mantidos em "Nº Cliente": 00127 continua 00127, salvo como texto.
- Zeros à esquerda mantidos em "C.P.": 01234 continua 01234, salvo como texto.
- 15/02/2024 prova que as datas em "Alta" começam pelo dia, então 03/02/2024 é lido como 2024‑02‑03.
- "Activo" contém palavras de sim e não (sí, no), salvas como booleano.
- Os números em "Saldo" usam vírgula decimal: 1.234,50 é lido como 1234.50.
- N/A em "Saldo" lidos como vazios (1 de 4 valores).
Seu arquivo é convertido neste computador e nunca é enviado.
Outros exemplos:
De Excel para Oracle, coluna por coluna
O exemplo acima, clientes_2024.xlsx, 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 |
|---|---|---|---|---|
| Nº Cliente | 00127 | no_cliente | VARCHAR2(8 CHAR) | '00127' |
| Nombre | Peña Muñoz | nombre | VARCHAR2(16 CHAR) | 'Peña Muñoz' |
| C.P. | 01234 | c_p | VARCHAR2(8 CHAR) | '01234' |
| Alta | 03/02/2024 | alta | DATE | DATE '2024-02-03' |
| Activo | sí | activo | NUMBER(1) | 1 |
| Saldo | 1.234,50 | saldo | NUMBER(6,2) | 1234.50 |
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 @clientes_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 Excel e Oracle
O que o IntoSQL lê em arquivos Excel
- A linha do cabeçalho é encontrada mesmo com títulos ou notas acima dela, e uma linha de totais no final fica de fora.
- Datas guardadas como números de série do Excel viram datas de verdade, tanto no sistema de datas 1900 quanto no 1904.
- Códigos com zeros à esquerda, como 00127, continuam como texto. Quando uma pasta de trabalho tem várias planilhas, você escolhe a planilha.
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 Excel 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 Excel 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 planilha da pasta de trabalho é convertida?
A primeira planilha visível. Quando a pasta de trabalho tem mais de uma, aparece a opção Planilha para você escolher outra.
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 00127 continua como texto, então o Oracle o guarda como VARCHAR2(8 CHAR) e o script o escreve como '00127'.
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 Excel?
No navegador, a pasta de trabalho é lida inteira, 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 pastas de trabalho de qualquer tamanho; em um notebook com Apple M4, a linha de comando converte uma pasta de trabalho de 117 MB com um milhão de linhas em cerca de um segundo.