Bonjour,

Si quelqu'un pouvait m'aider à résoudre ce petit problème ce serait bien sympa.

J'essaye d'importer des données dans une base oracle (8i) à l'aide de sqlldr.
Dans un script sql, je crée mes tables, ensuite j'appele le sqlldr pour initialiser mes tables avec les données d'un fichier plat. Je veux en fait insérer une partie des champs dans une table et l'autre partie ds l'autre. Les champs sont de longueurs variables. Les données insérées ds la première table sont OK mais pour la deuxième table il y a un décalage. (le prenom est placé ds le nom, le matricule ds le prénom, ... etc)

Structure d'une ligne du fichier plat
Rue | tel | code | ville | nom | prenom |matricule | fonction | categorie


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
fichier de controle
 
LOAD DATA INFILE 'file.csv'
APPEND
INTO TABLE Z_LOCALITE
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS(
	LOCID CHAR(10) "SEQ_LOC.nextval",
	RUE CHAR(200),
	TELEPHONE CHAR(50),
	CODE CHAR(10),
	VILLE CHAR(150)
)
 
INTO TABLE Z_PERSONNE
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS
(
	PERSONNEID "SEQ_PERSONNE.nextval",
	NOM CHAR(50),
	PRENOM CHAR(50),
	MATRICULE CHAR(11),
	FONCTION CHAR(3),
	CATEGORIE CHAR(1),
	LOCID CHAR(10) "SEQ_LOC2.nextval"
)