SQL LOADER : erreur de données
je veux charger une table ici article_document à partir d'un fichier de donnée d'extension .DAT que j'ai obtenu par un UNLOAD de la table par Sybase.Et quand je prépare tout et lance la commande sqlldr :
il me signale les erreurs suivantes :
Table ARTICLE_DOCUMENT, chargé à partir de chaque enregistrement physique.
Option d'insertion en vigueur pour cette table : INSERT
Nom de colonne Position Long. Séparat. Encadrem. Type de données
------------------------------ ---------- ----- ---- ---- ---------------------
ADOC_INDEX FIRST * , CHARACTER
ADOC_NAME NEXT * , CHARACTER
ADOC_PATH NEXT * , CHARACTER
ADOC_DOCUMENT NEXT * , CHARACTER
ADOC_COMMENT NEXT * , CHARACTER
ADOC_ARTICLEID NEXT * , CHARACTER
ADOC_ARTICLENAME NEXT * , CHARACTER
Enregistrement 1 : Rejeté - Erreur sur table ARTICLE_DOCUMENT, colonne ADOC_DOCUMENT.
Un champ du fichier de données dépasse la longueur maximale autorisée
Enregistrement 2 : Rejeté - Erreur sur table ARTICLE_DOCUMENT, colonne ADOC_DOCUMENT.
Un champ du fichier de données dépasse la longueur maximale autorisée
Table ARTICLE_DOCUMENT :
Chargement réussi de 0 Lignes.
2 Lignes chargement impossible dû à des erreurs de données.
0 Lignes chargement impossible car échec de toutes les clauses WHEN.
0 Lignes chargement impossible car tous les champs étaient non renseignés.
Vous-vous m'aider un peu. :cry:
sql loader :erreur chargement de données
Mais la colonne est de type BLOB et elle doit acceuillir le contenu d'un fichier Word.Et je ne vois comment choisir un type plus grand que BLOB pour ce ces genres de données.
sql loader :erreur chargement de données
voici le desc de la table Oraclequi doit acceuillir les données :
SQL> desc article_document
Nom NULL ? Type
----------------------------------------- -------- ---------------------
ADOC_INDEX NOT NULL NUMBER(6)
ADOC_NAME NOT NULL VARCHAR2(50)
ADOC_PATH VARCHAR2(250)
ADOC_DOCUMENT BLOB
ADOC_COMMENT VARCHAR2(100)
ADOC_ARTICLEID NOT NULL NUMBER(38)
ADOC_ARTICLENAME NOT NULL VARCHAR2(50)
Je suis sur Oracle 8i.
et le fichier de contrôle :
LOAD DATA
INFILE 'C:\Syscost\load\338.DAT'
into table article_document
FIELDS TERMINATED by ','
(adoc_index ,
adoc_name ,
adoc_path ,
adoc_document ,
adoc_comment ,
adoc_articleid ,
adoc_articlename )
sql loader :erreur chargement de données
Merci pour ton aide.
mais là il me signale encore :
Erreur de syntaxe à la ligne 5,
")" attendu, "," trouvé
adoc_index decimal external(6,1).
Apparemment c'est le decimal(6,1) qui le géne
sql loader :erreur chargement de données
voici le fichier data en piéces jointes.
Donc là vous remarquerez facilement le champ adoc_document qui est le contenu du fichier avec des suites de 0123b10.
Et je pense que c'est ça qui fait que ça n'arrive pas à se contenir dans le champ de type blob.
En effet, le fichier est de poni DAT, je l'ai eu par un UNLOAD des données de la table correspondante qui était sous Syabse.
oui c'est mieux quand c'est typé
SQL*Loader can load data from a "primary data file", SDF (Secondary Data file - for loading nested tables and VARRAYs) or LOBFILE. The LOBFILE method provides an easy way to load documents, images and audio clips into BLOB and CLOB columns. Look at this example:
Given the following table:
CREATE TABLE image_table (
image_id NUMBER(5),
file_name VARCHAR2(30),
image_data BLOB);
Control File:
LOAD DATA
INFILE *
INTO TABLE image_table
REPLACE
FIELDS TERMINATED BY ','
(
image_id INTEGER(5),
file_name CHAR(30),
image_data LOBFILE (file_name) TERMINATED BY EOF
)
BEGINDATA
001,image1.gif
002,image2.jpg