SQL Loader
cleops
Messages postés
24
Statut
Membre
-
puypuy -
puypuy -
Bonjour,
je voudrais inserer un fichier dans une table dont les champs sont de ce type:
265276;26/09/05;1147;0665804907;1
265277;26/09/05;1147;0665804910;1
J'ai ecrit une requete de ce type:
LOAD DATA INFILE 'fichier.log'
APPEND INTO TABLE event
FIELDS TERMINATED BY';'OPTIONALLY ENCLOSED BY'"'
(ID,DATE date,EVENT_ID,LOGIN,C);
Quand je fais appel a cette requete avec un script, cette erreur apparait: Illegal combination of non-alphanumeric characters
Et je ne comprends pas pourquoi. Quelqu'un a une idee?
Merci d'avance pour votre aide
je voudrais inserer un fichier dans une table dont les champs sont de ce type:
265276;26/09/05;1147;0665804907;1
265277;26/09/05;1147;0665804910;1
J'ai ecrit une requete de ce type:
LOAD DATA INFILE 'fichier.log'
APPEND INTO TABLE event
FIELDS TERMINATED BY';'OPTIONALLY ENCLOSED BY'"'
(ID,DATE date,EVENT_ID,LOGIN,C);
Quand je fais appel a cette requete avec un script, cette erreur apparait: Illegal combination of non-alphanumeric characters
Et je ne comprends pas pourquoi. Quelqu'un a une idee?
Merci d'avance pour votre aide
A voir également:
- Trailing nullcols
- Windows loader - Télécharger - Gestion de fichiers
- Logiciel sql - Télécharger - Bases de données
- Sql (+) - Forum Programmation
- Ctf loader ✓ - Forum Windows XP
- Requete sql pix - Forum PHP
9 réponses
J'ai modifie mon script pour qu'il n'ait plus l'erreur de commit.
LOAD DATA INFILE 'fichier.log'
APPEND INTO TABLE event
FIELDS TERMINATED BY ';'
(ID position (*) integer,DATE position (*) date,EVENT_ID p
osition (*) integer,LOGIN_NAME position (*) varchar,CANAL position (*) varchar)
Donc je n'ai plus de commit mais il rejete toutes les lignes de mon fichier au lieu de les ecrire dans ma table
Record 1: Rejected - Error on table AACSTA_USER_EVENT, column CANAL.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 2: Rejected - Error on table AACSTA_USER_EVENT, column CANAL.
Column not found before end of logical record (use TRAILING NULLCOLS)
Et c'est comme ca pour chaque ligne de mon fichier. Quelqu'un sait pourquoi il n'accepte pas la derniere colonne?
LOAD DATA INFILE 'fichier.log'
APPEND INTO TABLE event
FIELDS TERMINATED BY ';'
(ID position (*) integer,DATE position (*) date,EVENT_ID p
osition (*) integer,LOGIN_NAME position (*) varchar,CANAL position (*) varchar)
Donc je n'ai plus de commit mais il rejete toutes les lignes de mon fichier au lieu de les ecrire dans ma table
Record 1: Rejected - Error on table AACSTA_USER_EVENT, column CANAL.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 2: Rejected - Error on table AACSTA_USER_EVENT, column CANAL.
Column not found before end of logical record (use TRAILING NULLCOLS)
Et c'est comme ca pour chaque ligne de mon fichier. Quelqu'un sait pourquoi il n'accepte pas la derniere colonne?
Salut,
Y aurai pas un problème avec les dates qui ne semblent pas être au format
mysql : YYYY-MM-DD ?
Sinon, files la structure complète de la table event.
Y aurai pas un problème avec les dates qui ne semblent pas être au format
mysql : YYYY-MM-DD ?
Sinon, files la structure complète de la table event.
Salut,
Tout d'abord merci de m'avoir repondu.
En fait j'utilise une base de données oracle.
Voici la structure de la table event
- id: number
- date: date
- event_id: number
- login: varchar2
- C: number
Merci d'avance de ton aide
Tout d'abord merci de m'avoir repondu.
En fait j'utilise une base de données oracle.
Voici la structure de la table event
- id: number
- date: date
- event_id: number
- login: varchar2
- C: number
Merci d'avance de ton aide
Bonjour,
Je ne travail pas des masses avec oracle, mais les champs date et login n'étant pas des entier ou booléens, tu devrais les quoter dans ton fichier text ((sauf si c'est un genre de bcp, et enccore, suis pas sure.
265276;'26/09/05';1147;'0665804907';1
Autre chose, login -> varchar 2, le 2 c'est une faute de frappe ? parce que 0665804907, ça fait 10 caractéres ;)
++
Je ne travail pas des masses avec oracle, mais les champs date et login n'étant pas des entier ou booléens, tu devrais les quoter dans ton fichier text ((sauf si c'est un genre de bcp, et enccore, suis pas sure.
265276;'26/09/05';1147;'0665804907';1
Autre chose, login -> varchar 2, le 2 c'est une faute de frappe ? parce que 0665804907, ça fait 10 caractéres ;)
++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
J'ai remodifie mon fichier d'entree car il y avait des caracteres et des espaces en trop.
Dans mon script login est bien un varchar2(50) car des fois il y a plus de 10 caracteres
Maintenant j'ai ces erreurs qui apparaissent lorsque j'execute mon script. Ca veut dire quoi?
Commit point reached - logical record count 50
Commit point reached - logical record count 100
Merci d'avance pour ton aide
J'ai remodifie mon fichier d'entree car il y avait des caracteres et des espaces en trop.
Dans mon script login est bien un varchar2(50) car des fois il y a plus de 10 caracteres
Maintenant j'ai ces erreurs qui apparaissent lorsque j'execute mon script. Ca veut dire quoi?
Commit point reached - logical record count 50
Commit point reached - logical record count 100
Merci d'avance pour ton aide
Petite precision le nom de la table n'a rien avoir avec l'erreur event=aacsta_user_event.
merci d'avance pour votre aide
merci d'avance pour votre aide
Heu... le commit, n'est pas une erreur tu a regardé l'état de ta table avant de refaire ton script ?
COMMIT -> Accepter les précédentes requêtes
ROLLBACK -> Annuler les précédentes requêtes
Donc:
- Commit point reached - logical record count 50
50 lignes insérées, Oracle commit automatiquement
- Commit point reached - logical record count 100
100 lignes insérées (50+50), Oracle commit automatiquement
Si ton script ne t'a dit que ça, c'est qu'il fonctionnait trés bien ;)
De plus, ta derniere colonne, c'est C ou CANAL ?
Si tu nous donnais la structure exacte de ta table (retourner par une procstock ou autre moyen disponible avec oracle ) on pourrait sans doute mieux comprendre le probléme..
++
COMMIT -> Accepter les précédentes requêtes
ROLLBACK -> Annuler les précédentes requêtes
Donc:
- Commit point reached - logical record count 50
50 lignes insérées, Oracle commit automatiquement
- Commit point reached - logical record count 100
100 lignes insérées (50+50), Oracle commit automatiquement
Si ton script ne t'a dit que ça, c'est qu'il fonctionnait trés bien ;)
De plus, ta derniere colonne, c'est C ou CANAL ?
Si tu nous donnais la structure exacte de ta table (retourner par une procstock ou autre moyen disponible avec oracle ) on pourrait sans doute mieux comprendre le probléme..
++
Salut,
Tu avais raison le commit ca veut dire que j'avais reussi l'insertion des fichiers. Je n'avais pas fait attention pour moi ct une erreur. Du coup j'ai passe une demi journée en plus a chercher pour rien.
Pour info il ne faut pas mettre le type des variables:
LOAD DATA INFILE 'fichier.log'
APPEND INTO TABLE event
FIELDS TERMINATED BY ';'
(ID position (*),DATE position (*),EVENT_ID position (*),L
OGIN_NAME position (*),CANAL position (*))
Merci beaucoup pour ton aide asevere. Sans toi j'aurais encore tourner en rond :)
A+
Tu avais raison le commit ca veut dire que j'avais reussi l'insertion des fichiers. Je n'avais pas fait attention pour moi ct une erreur. Du coup j'ai passe une demi journée en plus a chercher pour rien.
Pour info il ne faut pas mettre le type des variables:
LOAD DATA INFILE 'fichier.log'
APPEND INTO TABLE event
FIELDS TERMINATED BY ';'
(ID position (*),DATE position (*),EVENT_ID position (*),L
OGIN_NAME position (*),CANAL position (*))
Merci beaucoup pour ton aide asevere. Sans toi j'aurais encore tourner en rond :)
A+
bonjour à tous ,
moi aussi je travaille sur le meme sujet (structurer des données à partir d'un fichier texte vers une table ) avec des recherches et des demandes par si par la ==> j'ai pu savoir qu'il faudré travailler avec sql loader mais je ntravaille pas sur BD oracle mais une BD sql server 2005
ce ke je voudré savoir cé k'une fois ke jé ecrit le script comme vous l'avez fait , comment l'excécuter pour kil envoi les données a partir du fichier texte vers la table que jé crée dans une nouvelle BD dans sql server 2005 ?
et merci d'avance.
moi aussi je travaille sur le meme sujet (structurer des données à partir d'un fichier texte vers une table ) avec des recherches et des demandes par si par la ==> j'ai pu savoir qu'il faudré travailler avec sql loader mais je ntravaille pas sur BD oracle mais une BD sql server 2005
ce ke je voudré savoir cé k'une fois ke jé ecrit le script comme vous l'avez fait , comment l'excécuter pour kil envoi les données a partir du fichier texte vers la table que jé crée dans une nouvelle BD dans sql server 2005 ?
et merci d'avance.
donc il faut ecrire
LOAD DATA INFILE 'fichier.log'
APPEND INTO TABLE event
FIELDS TERMINATED BY ';' TRAILING NULLCOLS
(ID position (*) integer,DATE position (*) date,EVENT_ID p
osition (*) integer,LOGIN_NAME position (*) varchar,CANAL position (*) varchar)
ce qui te permettra d'eviter le colonne nulles