Convertir Excel en Oracle
Déposez votre fichier Excel pour obtenir un script Oracle avec des instructions CREATE TABLE et INSERT. Chaque colonne reçoit un type, et chaque correction est listée avec sa ligne et sa colonne.
4 lignes converties, 10 corrections, aucune rejetée
| Ligne | ||||||
|---|---|---|---|---|---|---|
| 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;
Corrections
- L'en-tête est à la ligne 4 ; les lignes au-dessus ont été écartées.
- La ligne 9 ("TOTAL") est un total, elle a donc été écartée.
- La colonne "Nº Cliente" s'appelle désormais no_cliente pour que Oracle la lise sans guillemets.
- La colonne "C.P." s'appelle désormais c_p pour que Oracle la lise sans guillemets.
- Zéros initiaux conservés dans "Nº Cliente" : 00127 reste 00127, enregistré en texte.
- Zéros initiaux conservés dans "C.P." : 01234 reste 01234, enregistré en texte.
- 15/02/2024 prouve que les dates de "Alta" commencent par le jour, donc 03/02/2024 est lu comme 2024‑02‑03.
- "Activo" contient des mots oui et non (sí, no), enregistrés en booléen.
- Les nombres de "Saldo" utilisent une virgule décimale : 1.234,50 est lu comme 1234.50.
- N/A dans "Saldo" lus comme vides (1 sur 4 valeurs).
Votre fichier est converti sur cet ordinateur et n'est jamais envoyé.
Autres exemples :
De Excel à Oracle, colonne par colonne
L'exemple ci-dessus, clientes_2024.xlsx, tel qu'IntoSQL l'écrit pour Oracle : ce que contient chaque colonne du fichier, le type qu'elle reçoit et comment sa première valeur apparaît dans le script.
| Dans le fichier | Première valeur | Colonne | Type Oracle | Dans le 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 |
Charger le script dans Oracle
Le téléchargement est un simple fichier .sql. Exécutez-le avec les outils de Oracle.
Depuis un terminal
sqlplus user@//localhost/mydb @clientes_2024.oracle.sqlLe script désactive les variables de substitution (SET DEFINE OFF), donc une esperluette dans vos données reste une esperluette.
Depuis un outil de base de données
Dans SQL Developer, ouvrez le script et choisissez Run Script (F5).
Bon à savoir sur les fichiers Excel et Oracle
Ce qu'IntoSQL lit dans les fichiers Excel
- La ligne d'en-tête est trouvée même quand des titres ou des notes se trouvent au-dessus, et une ligne de totaux à la fin est écartée.
- Les dates stockées comme numéros de série Excel deviennent de vraies dates, dans le système de dates 1900 comme dans le 1904.
- Les codes avec des zéros en tête, comme 00127, restent du texte. Quand un classeur a plusieurs feuilles, vous choisissez la feuille.
Bon à savoir sur Oracle
- Les valeurs oui et non deviennent NUMBER(1), avec 1 ou 0, ce que toutes les versions d'Oracle acceptent.
- Le texte est en VARCHAR2 avec une longueur en caractères ; au-delà de 4000 octets, il devient CLOB. Oracle stocke le texte vide comme NULL.
- Les lignes sont insérées avec INSERT ALL, et les valeurs longues sont découpées pour que SQL*Plus les accepte.
Comment chaque type de valeur est stocké dans Oracle
| Valeur | Oracle |
|---|---|
| Oui et non | NUMBER(1) |
| Nombres entiers | NUMBER(10) |
| Grands nombres entiers | NUMBER(19) |
| Décimaux | NUMBER(p,s) |
| Nombres à virgule flottante | BINARY_DOUBLE |
| Dates | DATE |
| Heures | INTERVAL DAY(0) TO SECOND |
| Dates avec heure | TIMESTAMP |
| Dates avec heure et décalage | TIMESTAMP WITH TIME ZONE |
| Texte | VARCHAR2(n CHAR)CLOB |
Questions sur Excel vers Oracle
Pas de réponse ici ? Écrivez-nous depuis la page de contact, une personne vous répond. Page de contact
Comment convertir Excel en Oracle ?
Déposez votre fichier sur le convertisseur en haut de cette page. Il trouve l'en-tête, lit chaque valeur et écrit le script Oracle, en listant chaque correction. Téléchargez le script et exécutez-le avec SQL*Plus.
Quelle feuille du classeur est convertie ?
La première feuille visible. Quand un classeur en a plusieurs, une option Feuille apparaît pour en choisir une autre.
Quels types Oracle utilise-t-il ?
Les valeurs oui et non deviennent NUMBER(1), les nombres entiers NUMBER(10), les décimaux NUMBER(p,s), les dates DATE, les dates avec heure TIMESTAMP et le texte VARCHAR2(n CHAR). Les tailles viennent de la valeur la plus longue de chaque colonne.
Garde-t-il les zéros en tête dans Oracle ?
Oui. Un code comme 00127 reste du texte, donc Oracle le stocke en VARCHAR2(8 CHAR) et le script l'écrit '00127'.
Peut-il charger les données dans Oracle sans script ?
Non. Téléchargez le script et exécutez-le avec SQL*Plus. Le chargement sans script fonctionne pour PostgreSQL, MySQL, MariaDB et SQLite, depuis l'application de bureau ou la ligne de commande.
Quelle taille peut avoir le fichier Excel ?
Dans le navigateur, le classeur est lu en entier, donc la limite est la mémoire que le navigateur accorde à cette page. L'application de bureau et la ligne de commande acceptent des classeurs de toute taille ; sur un portable Apple M4, la ligne de commande convertit un classeur de 117 Mo d'un million de lignes en environ une seconde.