Conversion de type char en type number dans sql loader
Fermé
sabdoul
-
28 févr. 2013 à 18:22
sabdoul Messages postés 40 Date d'inscription samedi 18 août 2012 Statut Membre Dernière intervention 22 octobre 2014 - 1 mars 2013 à 13:39
sabdoul Messages postés 40 Date d'inscription samedi 18 août 2012 Statut Membre Dernière intervention 22 octobre 2014 - 1 mars 2013 à 13:39
A voir également:
- Conversion de type char en type number dans sql loader
- Clear type - Guide
- Type de ram - Guide
- Changer type de fichier - Guide
- Incompatibilité de type vba ✓ - Forum Excel
- Erreur exécution 13 : incompatibilité de type ✓ - Forum VB / VBA
4 réponses
jee pee
Messages postés
40959
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 mars 2025
9 569
28 févr. 2013 à 21:42
28 févr. 2013 à 21:42
Salut,
Tu devrais essayer quelque chose comme :
SELECT TO_NUMBER('-2 520,00', '999G999D99',
'NLS_NUMERIC_CHARACTERS = '', ''') FROM DUAL;
cdlt
Tu devrais essayer quelque chose comme :
SELECT TO_NUMBER('-2 520,00', '999G999D99',
'NLS_NUMERIC_CHARACTERS = '', ''') FROM DUAL;
cdlt
sabdoul
Messages postés
40
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
22 octobre 2014
1 mars 2013 à 09:45
1 mars 2013 à 09:45
bonjour, concernant cette solution je pense qu'elle s'effectue dans une requête. hors mon cas c'est l'insertion des données provenant du fichier dans ma BDD a travers sql loader. donc je sais pas s'il une syntaxe spécifique de conversion de chaine de caractère en nombre dans le fichier de contrôle. si oui comment se présente elle.
du genre
LOAD DATA
APPEND
INTO TABLE ma table
FIELDS TERMINATED BY ';'
TRAILING NULLCOLS
(CETABL char(5) ,
COPRODUIT char(35) ,
DESIG char(128),
QUANTITE "TO_NUMBER(:QUANTITE,'999G999D99')"
MONTANT_HT "TO_NUMBER(:MONTANT_HT,'999G999G999')",
MONTANT_TTC "TO_NUMBER(:MONTANT_TTC,'999G999G999')",
DATE Date "DD/MM/YYYY"
)
qu'est ce qu'il faut adapter a ces lignes pour que ça marche car j'ai essayer plusiers syntaxe mais rien n'y faire ça ne marche pas
QUANTITE QUANTITE "TO_NUMBER(:QUANTITE,'999G999D99')"
MONTANT_HT "TO_NUMBER(:MONTANT_HT,'999G999G999')",
MONTANT_TTC "TO_NUMBER(:MONTANT_TTC,'999G999G999')"
merci d'avance
du genre
LOAD DATA
APPEND
INTO TABLE ma table
FIELDS TERMINATED BY ';'
TRAILING NULLCOLS
(CETABL char(5) ,
COPRODUIT char(35) ,
DESIG char(128),
QUANTITE "TO_NUMBER(:QUANTITE,'999G999D99')"
MONTANT_HT "TO_NUMBER(:MONTANT_HT,'999G999G999')",
MONTANT_TTC "TO_NUMBER(:MONTANT_TTC,'999G999G999')",
DATE Date "DD/MM/YYYY"
)
qu'est ce qu'il faut adapter a ces lignes pour que ça marche car j'ai essayer plusiers syntaxe mais rien n'y faire ça ne marche pas
QUANTITE QUANTITE "TO_NUMBER(:QUANTITE,'999G999D99')"
MONTANT_HT "TO_NUMBER(:MONTANT_HT,'999G999G999')",
MONTANT_TTC "TO_NUMBER(:MONTANT_TTC,'999G999G999')"
merci d'avance
jee pee
Messages postés
40959
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 mars 2025
9 569
Modifié par jee pee le 1/03/2013 à 13:29
Modifié par jee pee le 1/03/2013 à 13:29
sur la logique du to_number du select ce devrait être :
attention aux simples cote ' et aux doubles cotes "
Un étranger, c'est un ami qu'on n'a pas encore rencontré.
"TO_NUMBER (:QUANTITE,'999G999D99','NLS_NUMERIC_CHARACTERS = '', ''')"
attention aux simples cote ' et aux doubles cotes "
Un étranger, c'est un ami qu'on n'a pas encore rencontré.
sabdoul
Messages postés
40
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
22 octobre 2014
1 mars 2013 à 13:39
1 mars 2013 à 13:39
Bonjour, j'avais déjà essayer cela et je viens de l'essayer encore mais ça ne marche pas c'est toujours la même erreur
Enregistrement 1 : Rejeté - Erreur sur table ma table.
ORA-00604: une erreur s'est produite au niveau SQL récursif 1
ORA-01722: Nombre non valide
voici la syntaxe
QUANTITE "TO_NUMBER(:QUANTITE,'999G999D99','NLS_NUMERIC_CHARACTERS = '', ''') ",
MONTANT_HT "TO_NUMBER(:MONTANT_HT,'999G999G999','NLS_NUMERIC_CHARACTERS = '', ''')",
MONTANT_TTC "TO_NUMBER(:MONTANT_TTC,'999G999G999','NLS_NUMERIC_CHARACTERS = '', ''')"
même en mettant des . a la place des , ou en les inter-changeant ça ne fonctionne pas.
Enregistrement 1 : Rejeté - Erreur sur table ma table.
ORA-00604: une erreur s'est produite au niveau SQL récursif 1
ORA-01722: Nombre non valide
voici la syntaxe
QUANTITE "TO_NUMBER(:QUANTITE,'999G999D99','NLS_NUMERIC_CHARACTERS = '', ''') ",
MONTANT_HT "TO_NUMBER(:MONTANT_HT,'999G999G999','NLS_NUMERIC_CHARACTERS = '', ''')",
MONTANT_TTC "TO_NUMBER(:MONTANT_TTC,'999G999G999','NLS_NUMERIC_CHARACTERS = '', ''')"
même en mettant des . a la place des , ou en les inter-changeant ça ne fonctionne pas.