Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/11/2010, 21h12   #1
Invité de passage
 
Inscription : juillet 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 6
Points : 2
Points : 2
Par défaut Load fichier txt dans table DB2

Bonjour,

j'ai un fichier d'un million de lignes avec 26 colonnes que je dois intégrer dans une table DB2. Evidemment dans ce fichier certaines colonnes sont nulles pour certaines lignes.

Je fais un LOAD de ce fichier mais il m'intègre que deux colonnes sur 26 en m'indiquant un risque de troncatures.

Quelle syntaxe et quels paramètres dois je utiliser pour réussir à l'intégrer mm si certains champs sont tronqués?

Le fichier est un TXT avec comme séparateur des tabulations et les types dans la base de données sont du varchar(100)

Merci pour votre aide
enovia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 11h02   #2
Membre chevronné
 
Avatar de bernard59139
 
Administrateur de base de données
Inscription : octobre 2006
Messages : 502
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : octobre 2006
Messages : 502
Points : 687
Points : 687
Bonjour

il faut décrire ton fichier en entrée, et utilliser les délimiteurs de colonnes.

un exemple z/os en db2.v8:
Code :
1
2
3
4
5
6
7
8
 
     LOAD DATA
          FORMAT DELIMITED COLDEL ',' CHARDEL '"' DECPT '.'
          INTO TABLE TBQB0103
              (FILENO   CHAR,
               DATE1    DATE EXTERNAL,
               TIME1    TIME EXTERNAL,
               TIMESTMP TIMESTAMP EXTERNAL)
Pour ce que je connais des db2 luw, je pense que la syntaxe est approchante.

par contre, je doute que les "tabulations" soient bien acceptées.
bernard59139 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 11h15   #3
Invité de passage
 
Inscription : juillet 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 6
Points : 2
Points : 2
Par défaut LOAD FICHIER

bonjour et merci pour ta réponse :
en V9 de DB2 j'ai la syntaxe suivante :

Code :
1
2
LOAD CLIENT FROM "<Chemin_fichier_a_charger>" OF DEL METHOD P (1, 2)
INSERT INTO <NOM_SCHEMA>.<NOM_TABLE> (<CHAMP1>, <CHAMP2>) COPY NO INDEXING MODE AUTOSELECT ALLOW READ ACCESS;
il faudrait donc que je rajoute le DELIMITEUR en spécifiant le critère FORMAT que vous m'avez indiqué dans le mail. Il faudrait aussi que je change le séparateur qui est la tabulation en "|" ou ";".

Je vais tester
Merci
enovia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 12h19   #4
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 75
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 75
Points : 38
Points : 38
si les colonnes sont alignées utilise la méthode L
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
import FROM <fichier> of ASC
  METHOD L ( 
1	10	,
11	21	,
22	51	,
52	53	,
54	73	,
74	78	,
79	108	,
109	120	,
...
)
  messages <fichier>
  {REPLACE ou INSERT ...} INTO <table>
Oratorio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h46.


 
 
 
 
Partenaires

Hébergement Web