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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Oracle : convertion décimal

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Oracle : convertion décimal

n°1541524
josserand_​joss
Posté le 11-04-2007 à 17:53:35  profilanswer
 

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. :ouch:  :cry:  
 
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 ! :)

mood
Publicité
Posté le 11-04-2007 à 17:53:35  profilanswer
 

n°1541603
couak
Posté le 11-04-2007 à 19:40:58  profilanswer
 

NLS_NUMERIC_CHARACTERS ?

n°1541751
josserand_​joss
Posté le 12-04-2007 à 09:12:25  profilanswer
 

Ok, et tu trouves ça où ?

n°1541762
josserand_​joss
Posté le 12-04-2007 à 09:36:12  profilanswer
 

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).

n°1541770
josserand_​joss
Posté le 12-04-2007 à 09:51:01  profilanswer
 

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 ????

n°1541780
josserand_​joss
Posté le 12-04-2007 à 10:01:52  profilanswer
 

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...)

n°1541789
couak
Posté le 12-04-2007 à 10:14:00  profilanswer
 

j'aime bien les gens qui trouvent tout seul leurs solutions :)


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

  Oracle : convertion décimal

 

Sujets relatifs
Présentation sur Oracle 9iScript - Base de données
connexion à une base oracle avec DBIPb d'accent et autres Java - Oracle
[Oracle PL/SQL] Error PLS-00103 dans une procédure stockéeun peu de sql sous oracle
Oracle Warehouse BuilderOracle - champs DATE à trier au 100ème de seconde
Oracle : SQLPlus et scripts en interectif ?creation d'index , stat oracle ???
Plus de sujets relatifs à : Oracle : convertion décimal


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