bonjour à tous,
Existe t-il une option ou une fonction qui permette de ne pas charger une deuxième valeur identique dans un champ de table si celui ci est une clé primaire?
MErçi
bonjour à tous,
Existe t-il une option ou une fonction qui permette de ne pas charger une deuxième valeur identique dans un champ de table si celui ci est une clé primaire?
MErçi
Je suppose que votre table contient déjà une clé primaire mais que celle-ci a été ignorée lors du chargement via sqlloader parce que vous avez utilisé un "direct path load"
Si c'est bien le cas, apprenez s'il vous plaît à bien expliciter votre problème afin que nous autres lecteurs puissions vous aider sans deviner.
Sinon, si vous voulez que votre clé primaire joue son rôle alors utilisez un "load conventionnel (direct=false dans votre control file)
*****************************************
Merçi pour votre réponse, en fait vous avez raison ça fonctionne avec le direct=false il prend bien en compte ma clé primaire.
Mais mon problème vient du fait que j'avais voulu dans un seul control faire un chargement avec deux when.
Je m'explique:
Ma base : en gras clés primaires et en italique clés étrangères
TETA(ETA_C_CODE_EW);
TAGE(AGE_C_MAT_AGENT,AGE_CODE_EH,AGE_C_DATE_PAIE,AGE_C_CODE_LIGNE,);
TPAI(PAI_C_DATE_PAIE,.....,PAI_C_CODE_LIGNE);
TTYL(TYL_C_CODE_LIGNE,TYL_L_LIB_LIGNE);
mon fichier données :
02001|ENT|15/01/2013|12/12/2012|01/01/2013|4|18573|0|14658|
02001|RUB|076813|89|1|15/01/2013|
02001|RUB|101524|39|1|15/01/2013|
J'ai voulu créer un seul control pour ce chargement :
Il me rejette les données suivantes :
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
28
29
30
31
32
33
34
35
36
37
38
39
40 LOAD DATA INFILE 'I:\Base de données\SQLLOADER\Data.txt' BADFILE '_3.bad' DISCARDFILE '_3.dsc' insert into table TETA when (7:9) <> 'RUB' FIELDS terminated by "|" TRAILING NULLCOLS ( ETA_C_CODE_EH ) INTO TABLE TPAI when (7:9) <> 'RUB' FIELDS terminated by "|" TRAILING NULLCOLS ( PAI_C_CODE_LIGNE "DECODE(:PAI_C_CODE_LIGNE,'ENT',1,'RUB',2)", PAI_C_DATE_PAIE date, PAI_L_PAIE_PREC DATE, PAI_L_DATE_RETRO date, PAI_L_NB_PAIE_M_TPS , PAI_L_NB_PAYE , PAI_L_NB_AGENT_RAJOUTE , PAI_L_TPS_CALCUL_TOTAL ) into table TAGE when (7:9) = 'RUB' FIELDS terminated by "|" TRAILING NULLCOLS ( AGE_C_CODE_EH, AGE_C_CODE_LIGNE "DECODE(:AGE_C_CODE_LIGNE,'ENT',1,'RUB',2)", AGE_C_MAT_AGENT, AGE_L_NB_SECONDE, AGE_L_NB_AGENT_SECONDE, AGE_C_DATE_PAIE )
02001|RUB|076813|89|1|15/01/2013|
02001|RUB|101524|39|1|15/01/2013|
J'ai donc l'impression qu'avec 2 when ça coince il ne tient compte que du premier car avec deux chargements différents ça marche :
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
28 LOAD DATA INFILE 'I:\Base de données\SQLLOADER\_Data.txt' BADFILE '7.bad' DISCARDFILE '7.dsc' insert into table TETA when (1:3) <> 'RUB' FIELDS terminated by "|" TRAILING NULLCOLS ( ETA_C_CODE_EH ) INTO TABLE TPAI when (1:3) <> 'RUB' FIELDS terminated by "|" TRAILING NULLCOLS ( PAI_C_CODE_LIGNE "DECODE(:PAI_C_CODE_LIGNE,'ENT',1,'RUB',2)", PAI_C_DATE_PAIE date, PAI_L_PAIE_PREC DATE, PAI_L_DATE_RETRO date, PAI_L_NB_PAIE_M_TPS , PAI_L_NB_PAYE , PAI_L_NB_AGENT_RAJOUTE , PAI_L_TPS_CALCUL_TOTAL )Voilà j'espère avoir été plus clair, si vous avez une idée merçi de me le faire savoir et encore merçi.
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 LOAD DATA INFILE 'I:\Base de données\SQLLOADER\_Data.txt' BADFILE '_2.bad' DISCARDFILE '_2.dsc' insert into table TAGE when (7:9) = 'RUB' FIELDS terminated by "|" TRAILING NULLCOLS ( AGE_C_CODE_EH, AGE_C_CODE_LIGNE "DECODE(:AGE_C_CODE_LIGNE,'ENT',1,'RUB',2)", AGE_C_MAT_AGENT, AGE_L_NB_SECONDE, AGE_L_NB_AGENT_SECONDE, AGE_C_DATE_PAIE )
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager