Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > SQL*Loader
SQL*Loader Forum d'entraide sur Oracle SQL*Loader
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 26/01/2007, 16h01   #1
Ito
Candidat au titre de Membre du Club
 
Inscription : mars 2005
Messages : 55
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 55
Points : 11
Points : 11
Par défaut [SQL-LOADER, 9i] Incrémentation d'une séquence à travers SQL LOADER

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.
Ito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 16h05   #2
Responsable Business Intelligence
 
Avatar de kalyparker
 
Femme
Consultant en Business Intelligence
Inscription : janvier 2007
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : janvier 2007
Messages : 1 192
Points : 2 564
Points : 2 564
Bonjour,

c'est possible : va faire un tour ici :
http://www.developpez.net/forums/sho...d.php?t=263951
et à l'avenir
kalyparker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 17h47   #3
Ito
Candidat au titre de Membre du Club
 
Inscription : mars 2005
Messages : 55
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 55
Points : 11
Points : 11
Citation:
Envoyé par kalyparker
Bonjour,

c'est possible : va faire un tour ici :
http://www.developpez.net/forums/sho...d.php?t=263951
et à l'avenir
J'ai trouvé la réponse dans le donné. Merci.
Dans l'utilisation de la recherche rapide, je ne trouve pas toujours satisfaction.

Cdlt.
Ito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2007, 09h21   #4
Responsable Business Intelligence
 
Avatar de kalyparker
 
Femme
Consultant en Business Intelligence
Inscription : janvier 2007
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : janvier 2007
Messages : 1 192
Points : 2 564
Points : 2 564
Citation:
Dans l'utilisation de la recherche rapide, je ne trouve pas toujours satisfaction.
No problem, on en est tous au même point...

Allez encore un problème de résolu
kalyparker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 11h51   #5
Ito
Candidat au titre de Membre du Club
 
Inscription : mars 2005
Messages : 55
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 55
Points : 11
Points : 11
Citation:
Envoyé par kalyparker
No problem, on en est tous au même point...

Allez encore un problème de résolu
Bonjour,

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.
Code :
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
Après insertion, ma 1ère colonne est vide. Pourquoi ?

Merci
Ito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 13h53   #6
Responsable Business Intelligence
 
Avatar de kalyparker
 
Femme
Consultant en Business Intelligence
Inscription : janvier 2007
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : janvier 2007
Messages : 1 192
Points : 2 564
Points : 2 564
Bonjour,

Code :
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)
)
Attention, dans ce fichier de controle il y a plusieurs erreurs :
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 :
Code :
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		
)
Voilou
kalyparker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 14h28   #7
Ito
Candidat au titre de Membre du Club
 
Inscription : mars 2005
Messages : 55
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 55
Points : 11
Points : 11
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 ?
Ito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 14h42   #8
Responsable Business Intelligence
 
Avatar de kalyparker
 
Femme
Consultant en Business Intelligence
Inscription : janvier 2007
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : janvier 2007
Messages : 1 192
Points : 2 564
Points : 2 564
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.
kalyparker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 14h41   #9
Ito
Candidat au titre de Membre du Club
 
Inscription : mars 2005
Messages : 55
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 55
Points : 11
Points : 11
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.
Ito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 16h23   #10
Responsable Business Intelligence
 
Avatar de kalyparker
 
Femme
Consultant en Business Intelligence
Inscription : janvier 2007
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : janvier 2007
Messages : 1 192
Points : 2 564
Points : 2 564
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 :
Code :
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		
)
pas très beau, mais efficace !!

@+
kalyparker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 17h12   #11
Ito
Candidat au titre de Membre du Club
 
Inscription : mars 2005
Messages : 55
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 55
Points : 11
Points : 11
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.
Ito est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h27.


 
 
 
 
Partenaires

Hébergement Web