-
Choix colonne SQL*Loader
Bonjour,
A priori ce que je demande n'a pas l'air d'etre possible du moins je n'ai pas trouve de reponse avec mon ami google mais bon kelkun ici a peut etre la solution :D
Alors j'ai un fichier txt ou csv peu importe avec à la base 6 colonne et j'aimerais importer dans ma table oracle uniquement les colonnes 2,4 et 6.
Est t'il possible de faire ca directement via le sql loader ou bien suis je obligatoirement oblige de passer par une table temporaire ?
Merci d'avance pour votre aide....
-
Bien sûr qu'il est possible de faire ça ... à condition que les colonnes qui ne sont pas chargées n'ont pas de contrainte NOT NULL :)
Par exemple, si les données sont de longueur fixe, il suffit de définir dans le fichier de contrôle la position des champs que l'on veut insérer et les colonnes concernées. Les colonnes non mentionnées auront la valeur par défaut (en général, nulle).
Voir un exemple un peu compliqué dans la doc de référence car il utilise 2 tables. Mais pour notre cas, on voit bien que toutes les colonnes de la table SCOTT.EMP ne sont pas référencées:
http://download-uk.oracle.com/docs/c...10.htm#1007219
-
Yes j'ai parcouru le fichier et je n'ai pas trouve comment faire lorsque les colonnes ne sont pas de longueur fixe
Ca se trouve c indique ms comme mon anglais est approximatif je suis peut etre passe a cote...
-
Une solution de contournement qui est souvent utilisé :
- Tu charge toutes les données dans une table puis tu effectue les opérations nécessaires dans la table final.
- si tu es en version 9i , les tables externes sont également une solution
Ces deux solutions viennent en complément de celle de pifor lorsque tu n'es pas en longueur fixe
-
-
Bonjour,
Vous pouvez aussi utilisé l'option "FILLER". ça permet de ne pas charger la colonne spécifié du csv.
Cordialement,