IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

séparateur décimale


Sujet :

Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 34
    Points : 25
    Points
    25
    Par défaut séparateur décimale
    Pour insérer une valeur ds un champ de type number, le séparateur décimal doit être un point.
    Quand je fais un select, ora me retourne la valeur avec la virgule comme séparateur décimal.
    Je souhaite une homogénéïté. Dois me faire une fonction qui utilisera la fonction Trunc ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	create table test (i number(2,1))
    	insert into test values(1.32);
    	select i from test

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Bonjour ,
    lorsque vous effectuer un ordre d'insertion , pour Oracle la virgule est un séparateur de colonne
    cependant vous pouvez contourner ce probléme en insérant avec les quotes simples :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    SQL> create table test (i number(2,1)) ;
     
    Table créée.
     
    SQL> insert into test values(1.32); 
     
    1 ligne créée.
     
    SQL> insert into test values (1,32) ;
    insert into test values (1,32)
                *
    ERREUR à la ligne 1 :
    ORA-00913: too many values
     
     
    SQL> insert into test values ('1,32') ; 
     
    1 ligne créée.
     
    SQL> select i from test ;
     
             I
    ----------
           1,3
           1,3
    Lorsque Oracle vous restitue les données, le séparateur est la vrigule mais encore une fois cela peut être contourner avec la fonction replace ou autre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SQL> select replace (i,',','.') from test ;
     
    REPLACE(I,',','.')
    ----------------------------------------
    1.3
    1.3
    Bon courage
    Jaouad

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    J'avais aussi fait cette réflexion pour le insert. N'existe t-il pas un paramètre ora pour définir ce séparateur décimal ?
    Je suis en 9.0.2

  4. #4
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Si, NLS_NUMERIC_CHARACTERS, où tu précises le séparateur de décimale et le séparateur de milliers.

    Pour voir sa valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select *  from v$nls_parameters where parameter = 'NLS_NUMERIC_CHARACTERS';
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    ok merci. J'ai aussi vu que je peux faire un alter session set NLS_NUMERIC_CHARACTERS pour le modifier de façon temporaire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET]Problème de séparateur décimal [débutant]
    Par Cantalou dans le forum Windows Forms
    Réponses: 5
    Dernier message: 03/03/2006, 13h37
  2. [ASIQ]Séparateur décimal
    Par ALLB dans le forum Sybase
    Réponses: 5
    Dernier message: 15/02/2006, 08h34
  3. [C#] Comment modifier le séparateur décimal ?
    Par vincent.e dans le forum C#
    Réponses: 5
    Dernier message: 12/01/2006, 23h07
  4. séparateur décimal
    Par sjprm dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/12/2005, 16h33
  5. [CR8.5][Oracle8] Séparateur décimal ignoré
    Par chrilie73 dans le forum SAP Crystal Reports
    Réponses: 9
    Dernier message: 06/06/2005, 18h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo