SQL loader probleme

SQL loader probleme - SQL/NoSQL - Programmation

Marsh Posté le 28-10-2005 à 15:14:33    

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.

Reply

Marsh Posté le 28-10-2005 à 15:14:33   

Reply

Marsh Posté le 28-10-2005 à 16:23:07    

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
Reply

Marsh Posté le 28-10-2005 à 17:01:41    

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

Reply

Marsh Posté le 28-10-2005 à 17:57:19    

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 .

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed