Oracle : convertion décimal - SQL/NoSQL - Programmation
Marsh Posté le 12-04-2007 à 09:36:12
Je l'ai trouvé.
Est-ce que ce paramètre s'applique au client Oracle ou à une base ?
D'après ce que je constate, il s'applique à un client : mon toad est en local, l'exécution de la requête par l'ETL est sur un client distant dont je ne peux toucher aucun paramètre.
Pour info, NLS_NUMERIC_CHARACTERS = ".," en local.
L'info est intéressante, mais ça ne permet pas de résoudre le fait qu'il me tronque mes décimales lors de l'insertion...
to_number('12.25') m'insère 12 avec le client distant (ETL), to_number('12,25') m'insère 12,25 avec le client local (Toad).
Marsh Posté le 12-04-2007 à 09:51:01
J'ai essayé le même traitement via l'ETL sur mon client Oracle local... idem.
Résumé :
- via l'ETL : conversion du varchar2 en nombre avec troncature de la décimale
- via Toad : conversion du varchar2 en nombre OK
...alors que l'ETL ne fait qu'envoyer des instructions SQL...
Pourquoi ????
Marsh Posté le 12-04-2007 à 10:01:52
Ok, j'ai trouvé mon problème...
Honte à moi :
J'ai mis mes colonnes en type number au lieu de float.
(C'est décidé, je pars sur une île déserte...)
Marsh Posté le 12-04-2007 à 10:14:00
j'aime bien les gens qui trouvent tout seul leurs solutions
Marsh Posté le 11-04-2007 à 17:53:35
Bonjour à tous,
Voici mon problème :
Je dois convertir un varchar2 en number. Exemple : '12,25' (avec une virgule)
Sous toad : to_number('12,25') marche sans problème. Par contre, to_number('12.25') avec un point ne marche pas.
Via un ETL (ODI pour ne pas le citer), c'est l'inverse : la virgule tombe en erreur, le point passe... Et encore, il accepte mais ne m'insère que '12'. Il me vire la décimal.
1- Savez-vous si Toad utilise un fichier de langue qui définirait les différents séparateur et autres... ?
2- Connaissez-vous autre chose que to_number ou cast(... as float) pour convertir une telle donnée ?
Merci d'avance !