Bonjour,
Je charge une table avec SQL LOADER et je voudrais que lors du chargement, une séquence soit incrémentée pour stocker le numéro de ligne. Est-il possible de le faire, si oui comment ?
Merci d'avance.
Bonjour,
Je charge une table avec SQL LOADER et je voudrais que lors du chargement, une séquence soit incrémentée pour stocker le numéro de ligne. Est-il possible de le faire, si oui comment ?
Merci d'avance.
Bonjour,
c'est possible : va faire un tour ici :
http://www.developpez.net/forums/sho...d.php?t=263951
et à l'avenir![]()
It isn't that they can't see the solution, it's that they can't see the problem.
Mes Articles et Traductions (Microstrategy, Css et Javascript)
Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.
J'ai trouvé la réponse dans le donné. Merci.Envoyé par kalyparker
Dans l'utilisation de la recherche rapide, je ne trouve pas toujours satisfaction.
Cdlt.
No problem, on en est tous au même point...Dans l'utilisation de la recherche rapide, je ne trouve pas toujours satisfaction.
Allez encore un problème de résolu![]()
It isn't that they can't see the solution, it's that they can't see the problem.
Mes Articles et Traductions (Microstrategy, Css et Javascript)
Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.
Bonjour,Envoyé par kalyparker
J'ai parcouru tous les liens donnés et j'ai fait un test, mais malheureuse ça ne marche pas. La colonne de la table qui doit recevoir la séquence reste vide.
Après insertion, ma 1ère colonne est vide. Pourquoi ?
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 Séquence: CREATE SEQUENCE sq_matl INCREMENT BY 1 START WITH 1 CACHE 20 / Table: CREATE TABLE matl ( numligne NUMBER(5) , liste VARCHAR2(100) , groupement VARCHAR2(100) , piece VARCHAR2(10) ) / Fichier de contrôle: LOAD DATA APPEND 'matl.csv' INTO TABLE matl FIELDS TERMINATED BY ';' ( numligne "sq_matl.nextval" , liste CHAR(100) , groupement CHAR(100) , piece CHAR(10) ) Les données: ;liste1;11 - SUPERSTRUCTURE;8200410131 ;liste2;11 - SUPERSTRUCTURE;8200392254 ;liste3;11 - SUPERSTRUCTURE;8200392256 ;liste4;63 - SIEGES;8200374313 ;liste5;11 - SUPERSTRUCTURE;8200374314 ;liste6;11 - SUPERSTRUCTURE;R100038002
Merci
Bonjour,
Attention, dans ce fichier de controle il y a plusieurs erreurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 LOAD DATA APPEND 'matl.csv' INTO TABLE matl FIELDS TERMINATED BY ';' ( numligne "sq_matl.nextval" , liste CHAR(100) , groupement CHAR(100) , piece CHAR(10) )
si tu précise fields terminated by alors tu n'as pas à définir la longueur de tes champs.
d'autre part le nom de ton fichier source est mal placé et il manque infile.
En bref, si tu veux que cela fonctionne voici ce que tu dois mettre :
Voilou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 LOAD DATA INFILE 'matl.csv' APPEND INTO TABLE matl FIELDS TERMINATED BY ';' ( numligne "sq_matl.nextval" , liste , groupement , piece )
It isn't that they can't see the solution, it's that they can't see the problem.
Mes Articles et Traductions (Microstrategy, Css et Javascript)
Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.
Merci kalyparker,
J'ai corrigé le fichier de contrôle et testé à nouveau mais hélas ma 1ère colonne qui doit contenir la séquence est vide tandis que les autres sont bien remplies.
D'où peut provenir l'erreur ?
J'ai fait le test, et chez moi ça marche...
J'ai la même config que toi, alors![]()
Essaye de dropper la sequence et de la recréer. Puis recharge ta table.
It isn't that they can't see the solution, it's that they can't see the problem.
Mes Articles et Traductions (Microstrategy, Css et Javascript)
Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.
Salut kalyparker,
J'ai refait le test et ça marche. Le problème venait du fait que je chargeais la table en mode direct (donc en bloc) au lieu de charger en mode conventionnel c-a-d ligne par ligne. En mode direct, la séquence ne peut pas être incrémentée.
Par ailleurs j'ai une autre problématique à régler: comment à travers sqlldr charger une colonne avec une constante, par exemple je veux mettre une constante dans ma colonne "liste" ?
Merci.
Salut Ito,
sur ce site :
http://orafaq.com/faqloadr.htm#MODIFY
on peut trouver quelques infos sur les modifications des données.
Cela dit, pour résoudre ton problème sur ce site il disent que l'on peux utiliser le mot CONSTANT.
J'ai tester, mais ça marche pas. Essaye quand même on sait jamais.![]()
Sinon je te propose ça :
pas très beau, mais efficace !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 LOAD DATA INFILE 'test.txt' APPEND INTO TABLE matl FIELDS TERMINATED BY ';' ( numligne "sq_matl.nextval", liste "decode(:liste,'','','TEST')", groupement, piece )
@+
It isn't that they can't see the solution, it's that they can't see the problem.
Mes Articles et Traductions (Microstrategy, Css et Javascript)
Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.
kalyparker,
J'ai testé avec CONSTANT, effectivement ça ne marche.
J'ai utilisé le DECODE et ça marche.
Once again, thanks a lot for all.
Partager