Converter CSV para Oracle
Solte seu arquivo CSV 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.
5 linhas convertidas, 8 correções, nenhuma rejeitada
| Linha | ||||||
|---|---|---|---|---|---|---|
| 5 | 00412 | Peña Muñoz | Mérida | 15/02/2024 | 1.234,50 | sí |
| 6 | 00413 | José Ángel Ruiz | León | 03/02/2024 | 99,90 | no |
| 7 | 00414 | Zoë Ortíz | Querétaro | 29/02/2024 | N/A | sí |
| 8 | 00415 | Ñuño Castañeda | Oaxaca | 28/02/2024 | 7,25 | no |
| 9 | 00416 | Iñaki Olaizola | Mazatlán | 11/03/2024 | 980,75 | sí |
-- Written by IntoSQL for Oracle.
SET DEFINE OFF
CREATE TABLE ventas_2024 (
folio VARCHAR2(8 CHAR) NOT NULL,
cliente VARCHAR2(16 CHAR) NOT NULL,
ciudad VARCHAR2(16 CHAR) NOT NULL,
fecha DATE NOT NULL,
importe NUMBER(6,2),
pagado NUMBER(1) NOT NULL
);
INSERT ALL
INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES ('00412', 'Peña Muñoz', 'Mérida', DATE '2024-02-15', 1234.50, 1)
INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES ('00413', 'José Ángel Ruiz', 'León', DATE '2024-02-03', 99.90, 0)
INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES ('00414', 'Zoë Ortíz', 'Querétaro', DATE '2024-02-29', NULL, 1)
INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES ('00415', 'Ñuño Castañeda', 'Oaxaca', DATE '2024-02-28', 7.25, 0)
INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES ('00416', 'Iñaki Olaizola', 'Mazatlán', DATE '2024-03-11', 980.75, 1)
SELECT 1 FROM DUAL;
COMMIT;
Correções
- O arquivo foi escrito em windows‑1252; ele foi convertido para UTF-8.
- O cabeçalho está na linha 4; as linhas acima dele ficaram de fora.
- A linha 10 ("TOTAL") é um total, então ficou de fora.
- Zeros à esquerda mantidos em "Folio": 00412 continua 00412, salvo como texto.
- 15/02/2024 prova que as datas em "Fecha" começam pelo dia, então 03/02/2024 é lido como 2024‑02‑03.
- Os números em "Importe" usam vírgula decimal: 1.234,50 é lido como 1234.50.
- N/A em "Importe" lidos como vazios (1 de 5 valores).
- "Pagado" contém palavras de sim e não (sí, no), salvas como booleano.
Seu arquivo é convertido neste computador e nunca é enviado.
Outros exemplos:
De CSV para Oracle, coluna por coluna
O exemplo acima, ventas_2024.csv, 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 |
|---|---|---|---|---|
| Folio | 00412 | folio | VARCHAR2(8 CHAR) | '00412' |
| Cliente | Peña Muñoz | cliente | VARCHAR2(16 CHAR) | 'Peña Muñoz' |
| Ciudad | Mérida | ciudad | VARCHAR2(16 CHAR) | 'Mérida' |
| Fecha | 15/02/2024 | fecha | DATE | DATE '2024-02-15' |
| Importe | 1.234,50 | importe | NUMBER(6,2) | 1234.50 |
| Pagado | sí | pagado | NUMBER(1) | 1 |
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 @ventas_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 CSV e Oracle
O que o IntoSQL lê em arquivos CSV
- A codificação é detectada, incluindo Windows-1252 e UTF-16, então acentos e ç chegam intactos.
- O separador é detectado: vírgula, ponto e vírgula, tabulação ou barra vertical. Com ponto e vírgula, vírgulas decimais como 1.234,50 são lidas como números.
- Valores entre aspas podem conter separadores e quebras de linha.
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 CSV 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 CSV 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.
E se meu CSV usar ponto e vírgula ou tabulação?
O separador é detectado: vírgula, ponto e vírgula, tabulação ou barra vertical. Você também pode defini-lo em Mais opções. Com ponto e vírgula, vírgulas decimais como 1.234,50 são lidas como números.
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 00412 continua como texto, então o Oracle o guarda como VARCHAR2(8 CHAR) e o script o escreve como '00412'.
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 CSV?
O navegador lê o CSV à medida que ele chega, então arquivos de vários gigabytes funcionam. Em um notebook com Apple M4, a linha de comando converte um CSV de 174 MB com um milhão de linhas em menos de um segundo.