Bonsoir, voilà un bout de code à coller dans management studio :
La sortie donne un nombre avec une virgule pour le real (avec sa virgule flottante) et un nombre avec un point pour le decimal (avec sa virgule fixe).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 create table test ( col1 real, col2 decimal(10,3) ) insert into test (col1, col2) values (123.65,56983.256) select * from test drop table test
Et ce indépendamment des paramètres régionaux de ma machine ou de mon server (du Win Server 2008 R2 enterprise (paramétré en Français) avec du Sql Serveur 2008).
Pour info dans le Sql Server 2000, les deux donnent des points.
Sauriez vous pourquoi j'ai ce soucis ?
et pourquoi c'est comme ça par défaut ?
Et s'il y a un moyen de régulariser ça pour avoir soit un point soit une virgule ?
C'est gênant car dans la BD sur laquelle je travail, j'ai du real et du numeric(x,y).
De plus, en envoyant tout ça dans une commande en query par Bcp, le bousin me fait un convert auto en varchar par dessus et je me retrouve toujours avec des extractions avec des points au lieu des virgule quelque soit la valeur (, ou .) dans les paramètres régionaux des deux OS (client ou serveur).
nb : L'utilisation du collate (avec la culture française) sur la requête ou sur chaque colonne de la requête ne change rien.
nb : J'ai testé sans succès les fichiers de format avec BCP pour réaliser l'extraction sans conversion auto avec les types de mon choix, mais vu que ma vrai requête fait des jointures sur une dizaine de tables et que je ne souhaite pas en faire une vue (et de toute façon, ça rend encore moins bien qu'avec la conversion auto de bcp), ça n'est pas applicable.
Partager