Bonjour à tous,

Je vous donne deux missions pour ce post, d'abord la plus dur essayer de comprendre mon problème et le second, le résoudre.

Alors j'alimente une base Oracle xe avec sql loader. Mon fichier plats (txt) est constitué de bloc de données, afin de savoir quels enregistrements se trouve dans quels blocs après l'importation, j'ai créer des séquences.
Voici mon fichier de contrôle :

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
OPTIONS (SKIP=1)
LOAD DATA INFILE ....txt'
TRUNCATE
INTO TABLE T_DGP_L1
when F0 = '1' 
FIELDS TERMINATED BY ';'
TRAILING NULLCOLS
(   ID "SEQ.nextval",
    F0 FILLER POSITION(1) char,
    CODE_OFFRE,
    TX_TVA
) 
INTO TABLE T_DGP
when F0 = '2'
FIELDS TERMINATED BY ';'
TRAILING NULLCOLS
(   ID expression "SEQ.currval",
    F0 FILLER POSITION(1) char,
    CODE_PREST,
    TYPE_PREST,
 
)
Le code fonctionne parfaitement MAIS je me suis aperçu que les derniers enregistrements d'un bloc se trouvaient dans le bloc suivant.
Ce qui laisserai penser que l'execution sequence.nextval et sequence.currval n'est pas bien synchronisé.(pourtant si je ne me trompe pas l'import est bien ligne par ligne).

Pour ce qui aurait compris mon problème, auriez vous des indications sur ce sujet?

romain.