Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2465 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SQL loader probleme

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SQL loader probleme

n°1233568
lapartdomb​re
Posté le 28-10-2005 à 15:14:33  profilanswer
 

Bonjour j'ai deux problemes avec SQL loader. Je cherche à charger un fichier  plat avec séparateur. Voilà mon fichier de controle:
 

Code :
  1. LOAD DATA
  2. TRUNCATE NTO TABLE TMP_CATEGORIE
  3. FIELDS TERMINATED ";"
  4. (
  5. Ca_code,
  6. ca_libelle_long FILLER,
  7. ca_libelle,
  8. Ca_date_cre "to_char(to_date ( (substr(:Ca_date_cre,1,20) ||  substr(:Ca_date_cre,-2,2)), 'mon dd yyyy hh12:mi:ssAM'))",
  9. Ca_date_mod TIMESTAMP  "mon dd yyyy hh12:mi:ss:ff3AM",
  10. ca_date_sup NULLIF (ca_date_sup=BLANKS) "to_char(to_date ( (substr(:ca_date_sup,1,20) ||  substr(:ca_date_sup,-2,2)), 'mon dd yyyy hh12:mi:ssAM'))"
  11. )


 
Et le problème c'est que dans mes données le dernier champ n'est pas renseigné il est vide
 

Code :
  1. 1;Lettre;Lettre;Jan  1 2005 12:00:00:000AM;Jan 19 2005  2:22:39:513PM;
  2. 2;Ecopli;Ecopli;Jan  1 2005 12:00:00:000AM;Jan 19 2005  2:22:39:513PM;


 
Et donc j'ai une erreur :

Code :
  1. nregistrement 1 : Rejeté - Erreur sur table TMP_CATEGORIE, colonne CA_DATE_SUP.
  2. ORA-01843: ce n'est pas un mois valide


 
 
De plus, si je ne veux pas récupérer un champ de mon fichier plat, est ce que c'est bien FILLER qu'il faut utiliser et si oui avec quoi comme nom de champ devant.

mood
Publicité
Posté le 28-10-2005 à 15:14:33  profilanswer
 

n°1233663
olivthill
Posté le 28-10-2005 à 16:23:07  profilanswer
 

Citation :

TRUNCATE NTO TABLE TMP_CATEGORIE

Petite faute de frappe, c'est INTO.
 

Citation :

ca_date_sup NULLIF (ca_date_sup=BLANKS) "to_char(to_date ( (substr(:ca_date_sup,1,20) ||  substr(:ca_date_sup,-2,2)), 'mon dd yyyy hh12:mi:ssAM'))"  

NULLIF indique comment Oracle doit reconnaitre que le champ est nul. Il me semble que la conversion doit être indiquée avant le NULLIF.Donc, j'essayerais avec

ca_date_sup "to_char(to_date ( (substr(:ca_date_sup,1,20) ||  substr(:ca_date_sup,-2,2)), 'mon dd yyyy hh12:mi:ssAM'))" NULLIF (ca_date_sup="" )

Mais, je me demande si l'erreur ne vient pas de la conversion, donc il faudrait peut-être faire juste un petit test sans la conversion. Si c'était elle, alors il faudrait la modifier, par exemple en ajoutant NVL.


Message édité par olivthill le 28-10-2005 à 16:32:28
n°1233711
lapartdomb​re
Posté le 28-10-2005 à 17:01:41  profilanswer
 

Je vais essayer.. mais est ce que tu as une idée pour le FILLER???

n°1233778
olivthill
Posté le 28-10-2005 à 17:57:19  profilanswer
 

Devant FILLER, il semble que l'on peut mettre un nom de champ quelconque, et ta syntaxe parait bonne.
Voir un exemple http://asktom.oracle.com/~tkyte/SkipCols/ , et une doc http://www.csee.umbc.edu/help/orac [...] 2/ch03.htm .


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SQL loader probleme

 

Sujets relatifs
Problème Requete / TimestampProblème de flash(réglé merci djok_fb)
Problème de cookie chez OVH[SQL - ORACLE] Requete un peu complexe (pour moi)
[SQL] pb de selection...Problème d'enregistrement des données dans une classe
Comment faire cette requête SQL avec des combinaisonsProblème Switch Get Page & EasyPHP
probleme de variable dans un menuprobleme formulaire......
Plus de sujets relatifs à : SQL loader probleme


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR