Convertir Excel a Oracle
Suelta tu archivo Excel y obtén un script de Oracle con sentencias CREATE TABLE e INSERT. Cada columna recibe un tipo, y cada corrección se detalla con su fila y columna.
4 filas convertidas, 10 correcciones, ninguna rechazada
| Fila | ||||||
|---|---|---|---|---|---|---|
| 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;
Correcciones
- El encabezado está en la fila 4; las filas de arriba se dejaron fuera.
- La fila 9 ("TOTAL") es un total, así que se dejó fuera.
- La columna "Nº Cliente" pasa a llamarse no_cliente para que Oracle la lea sin comillas.
- La columna "C.P." pasa a llamarse c_p para que Oracle la lea sin comillas.
- Se conservaron los ceros a la izquierda en "Nº Cliente": 00127 sigue siendo 00127, guardado como texto.
- Se conservaron los ceros a la izquierda en "C.P.": 01234 sigue siendo 01234, guardado como texto.
- 15/02/2024 demuestra que las fechas de "Alta" llevan el día primero, así que 03/02/2024 se lee como 2024‑02‑03.
- "Activo" contiene palabras de sí y no (sí, no); se guarda como booleano.
- Los números de "Saldo" usan coma decimal: 1.234,50 se lee como 1234.50.
- N/A en "Saldo" se leyeron como vacíos (1 de 4 valores).
Tu archivo se convierte en esta computadora y nunca se sube.
Otros ejemplos:
De Excel a Oracle, columna por columna
El ejemplo de arriba, clientes_2024.xlsx, tal como IntoSQL lo escribe para Oracle: qué contiene cada columna en el archivo, qué tipo recibe y cómo queda su primer valor en el script.
| En el archivo | Primer valor | Columna | Tipo en Oracle | En el 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 |
Carga el script en Oracle
La descarga es un archivo .sql simple. Ejecútalo con las herramientas propias de Oracle.
Desde una terminal
sqlplus user@//localhost/mydb @clientes_2024.oracle.sqlEl script desactiva las variables de sustitución (SET DEFINE OFF), así que un ampersand en tus datos sigue siendo un ampersand.
Desde una herramienta de base de datos
En SQL Developer, abre el script y elige Run Script (F5).
Qué saber sobre los archivos Excel y Oracle
Qué lee IntoSQL en los archivos Excel
- La fila de encabezado se encuentra aunque haya títulos o notas encima, y una fila de totales al final se deja fuera.
- Las fechas guardadas como números de serie de Excel se vuelven fechas reales, tanto en el sistema de fechas 1900 como en el 1904.
- Los códigos con ceros a la izquierda, como 00127, se quedan como texto. Si un libro tiene varias hojas, tú eliges la hoja.
Qué saber sobre Oracle
- Los valores sí y no se vuelven NUMBER(1), con 1 o 0, que acepta cualquier versión de Oracle.
- El texto es VARCHAR2 con una longitud en caracteres; a partir de 4000 bytes se vuelve CLOB. Oracle guarda el texto vacío como NULL.
- Las filas se insertan con INSERT ALL, y los valores largos se dividen para que SQL*Plus los acepte.
Cómo se guarda cada tipo de valor en Oracle
| Valor | Oracle |
|---|---|
| Sí y no | NUMBER(1) |
| Números enteros | NUMBER(10) |
| Números enteros grandes | NUMBER(19) |
| Decimales | NUMBER(p,s) |
| Números de punto flotante | BINARY_DOUBLE |
| Fechas | DATE |
| Horas del día | INTERVAL DAY(0) TO SECOND |
| Fechas con hora | TIMESTAMP |
| Fechas con hora y zona horaria | TIMESTAMP WITH TIME ZONE |
| Texto | VARCHAR2(n CHAR)CLOB |
Preguntas sobre Excel a Oracle
¿No encuentras la respuesta? Escríbenos desde la página de contacto y te responde una persona. Página de contacto
¿Cómo convierto Excel a Oracle?
Suelta tu archivo en el convertidor al inicio de esta página. Encuentra el encabezado, lee cada valor y escribe el script de Oracle, con la lista de cada corrección que hizo. Descarga el script y ejecútalo con SQL*Plus.
¿Qué hoja del libro se convierte?
La primera hoja visible. Cuando un libro tiene más de una, aparece la opción Hoja para que elijas otra.
¿Qué tipos de Oracle usa?
Los valores sí y no pasan a NUMBER(1), los enteros a NUMBER(10), los decimales a NUMBER(p,s), las fechas a DATE, las fechas con hora a TIMESTAMP y el texto a VARCHAR2(n CHAR). Los tamaños salen del valor más largo de cada columna.
¿Conserva los ceros a la izquierda en Oracle?
Sí. Un código como 00127 se queda como texto, así que Oracle lo guarda como VARCHAR2(8 CHAR) y el script lo escribe como '00127'.
¿Puede cargar los datos en Oracle sin un script?
No. Descarga el script y ejecútalo con SQL*Plus. La carga sin script funciona con PostgreSQL, MySQL, MariaDB y SQLite, desde la app de escritorio o la línea de comandos.
¿Qué tan grande puede ser el archivo de Excel?
En el navegador, el libro se lee completo, así que el límite es la memoria que el navegador le da a esta página. La app de escritorio y la línea de comandos aceptan libros de cualquier tamaño; en una laptop con Apple M4, la línea de comandos convierte un libro de 117 MB con un millón de filas en cerca de un segundo.