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 21/10/2004, 15h25   #1
Invité de passage
 
Inscription : octobre 2004
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 15
Points : 2
Points : 2
Par défaut SQL LOADER

Bonjour,

Je suis un nouvel utilisateur oracle, j’essaye d’enrichir une table à partir d’un fichier plat (mission.dat)



Ex : VG01,"abcdeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",



Ma table sous oracle 8i est structurée en 2 colonnes Cle varchar2(4), Libelle varchar2(2000)



Le fichier .ctl est le suivant



load data

infile 'mission.dat'

insert

into table schxt.a01_mission append

fields terminated by ","

(cle, libelle)

Je rencontre un rejet

CLE FIRST * , CHARACTER

LIBELLE NEXT * , CHARACTER



Record 1: Rejected - Error on table SCHXT.A01_MISSION, column LIBELLE.

Field in data file exceeds maximum length



Table SCHXT.A01_MISSION:

0 Rows successfully loaded.

1 Row not loaded due to data errors.

0 Rows not loaded because all WHEN clauses were failed.

0 Rows not loaded because all fields were null.



Si j’insère cet enregistrement avec 261c c’est bon, en revanche au-delà de 255c dans libelle ce n’est plus bon, alors que ma zone réceptrice est déclarée en varchar2(2000).

Sous sqlplus il n’y a pas de problème pour insérer des enregistrement >255

J’ai essayé de décrire la zone dans le fichier .ctl sans succès.

Pourriez-vous m’aider

Je vous en remercie
velo83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2004, 11h21   #2
CD
Membre habitué
 
Inscription : septembre 2004
Messages : 127
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 127
Points : 138
Points : 138
Bonjour,

Pour les champs charactères supérieurs à 255 de taille, il faut préciser de manière explicite la taille du champ dans le fichier de controle (voir note 1061271.6 sur Metalink)

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
test@BROCANTE> DESC a01_mission
 Nom                                       NULL ?   Type
 ----------------------------------------- -------- ----------------------------
 
 CLE                                                VARCHAR2(4)
 LIBELLE                                            VARCHAR2(2000)
 
test@BROCANTE> host
 
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.
 
C:\AdminBases\sqlload>sqlldr test/test@brocante control=mission.ctl log=mission.log
 
SQL*Loader: Release 8.1.7.0.0 - Production ON Ve Oct 22 11:13:30 2004
 
(c) Copyright 2000 Oracle Corporation.  ALL rights reserved.
 
 
C:\AdminBases\sqlload>type mission.log
 
SQL*Loader: Release 8.1.7.0.0 - Production ON Ve Oct 22 11:13:30 2004
(...)
Enregistrement 1 : RejetÚ - Erreur sur TABLE TEST.A01_MISSION, colonne LIBELLE.
Un champ du fichier de donnÚes dÚpasse la longueur maximale autorisÚe
J'ai repris ton cas et j'ai reproduis l'erreur.

Maintenant, si je change le fichier de control :
Code :
1
2
3
4
5
6
LOAD DATA
INFILE 'mission.dat'
INSERT
INTO TABLE test.a01_mission append
FIELDS terminated BY ","
(cle, libelle char(2000))
Je relance le sqlldr :
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
C:\AdminBases\sqlload>sqlldr test/test@brocante control=mission.ctl log=mission.
log
 
SQL*Loader: Release 8.1.7.0.0 - Production ON Ve Oct 22 11:14:10 2004
 
(c) Copyright 2000 Oracle Corporation.  ALL rights reserved.
 
Point de validation (COMMIT) atteint - nombre d'enregis. logiques 1
 
C:\AdminBases\sqlload>exit
 
test@BROCANTE> select * from a01_mission;
 
CLE
----
LIBELLE
--------------------------------------------------------------------------------
 
VG01
"abcdeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
J'ai bien le champs qui est inséré
CD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2004, 08h24   #3
Invité de passage
 
Inscription : octobre 2004
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 15
Points : 2
Points : 2
Je te remercie beaucoup
velo83 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 00h32.


 
 
 
 
Partenaires

Hébergement Web