2017-07-06 3 views
0

Mon look fichier CSV comme celui-ciComment sauter les colonnes vides dans le fichier csv lors du chargement dans SQL en utilisant le fichier .ctl

111,,Allen,2000,,30 
222,,John,3000,,40 
333,,Miller,4000,,50 
333,,King,5000,,50 

Quelques fois les colonnes vides peuvent venir dans différentes positions, Pouvons-nous suggérer quoi que ce soit aux fichiers ctl , de sorte qu'il ne peut passer que les colonnes vides avec une virgule séparée?

+0

Lorsque vous dites « sauter seulement les colonnes vides » ce comportement ne vous avoir à l'esprit? Il existe des options pour gérer les cellules nulles pour les colonnes de la table NOT NULL; la valeur par défaut est de rejeter la ligne et de l'écrire dans le mauvais fichier. – APC

+0

Supposons que ma table ne comporte que quatre colonnes ID, NOM, Sal, Adresse. Mais dans le fichier CSV j'ai des colonnes vides comme ci-dessus, maintenant ma question est de savoir comment éliminer ces colonnes vides (parce que, ici colonne vide traite comme une colonne) .Je veux dynamiquement éliminer ces colonnes vides du fichier ctl – srinivas

+1

Donc vous voulez Ignorer automatiquement les colonnes vides indépendamment de leur position dans la ligne? Cela semble dangereux. Un meilleur plan serait de réparer la source de données afin qu'elle fournisse des données fiables. – APC

Répondre

0

en fait, je l'ai jamais utilisé, mais il me semble utile:

LOAD DATA 
INFILE 'name.txt' 
BADFILE 'name.bad' 
DISCARDFILE 'name.dsc' 
APPEND 
INTO TABLE emp_tab 
WHEN emp_id != BLANKS 
FIELDS TERMINATED BY ";" 
TRAILING NULLCOLS 
(emp_id, name, age) 

QUAND emp_id = BRUTES

+0

comment pouvons-nous décider du nom de la colonne? – srinivas