|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : avril 2009 Messages : 3 ![]() |
Bonsoir, voilà un bout de code à coller dans management studio :
Code :
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. |
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
C'est un bug lié à l'IHM SSMS... A faire remonter au support via CONNECT si ce n'est pas déjà fait...
Je l'ai déjà rencontré dans mes présentations et en particulier hier en faisant une démo devant 100 personnes chez MS !!! (SQL Server days....) Pourriez vous me donner votre version de SQL Server avec la commande : SELECT @@VERSION et celui de SSMS avec le menu "Aide / A propos de" et utiliser le copier coller pour nous fournir les versions des outils clients. A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 3 ![]() |
Bonjour, voilà les infos :
SELECT @@VERSION : Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (X64) Apr 22 2011 19:23:43 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) Infos SSMS : Microsoft SQL Server Management Studio 10.0.1600.22 ((SQL_PreRelease).080709-1414 ) Outils clients Microsoft Analysis Services 2007.0100.1600.022 ((SQL_PreRelease).080709-1414 ) Microsoft Data Access Components (MDAC) 6.1.7601.17514 (win7sp1_rtm.101119-1850) Microsoft MSXML 3.0 4.0 5.0 6.0 Microsoft Internet Explorer 8.0.7601.17514 Microsoft .NET Framework 2.0.50727.5448 Système d'exploitation 6.1.7601 Le serveur surlequel tourne SQL Server 2008 est un Windows Server 2008 R2 Entreprise avec le Pack 1. Et la version de BCP est la suivante : ![]() ps : Au niveau de BCP, connaissez vous un moyen pour qu'il exporte les données de type decimal ou real avec une virgule au lieu d'un point (lors de sa conversion auto en varchar) dans le fichier d'extraction ? Merci d'avance. |
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() ![]() |
Citation:
--> Pour avoir des virgules partout Code :
SELECT REPLACE(cast(col1 AS numeric(10,3)),'.',',') col1, REPLACE(cast(col2 AS numeric(10,3)),'.',',')col2 FROM maBase.dbo.test Code :
SELECT REPLACE(cast(col1 AS numeric(10,3)),',','.') col1, REPLACE(cast(col2 AS numeric(10,3)),',','.')col2 FROM maBase.dbo.test Code :
bcp "SELECT replace(cast(col1 as numeric(10,3)),'.',','), replace(cast(col2 as numeric(10,3)),'.',',') FROM maBase.dbo.test" QUERYOUT "C:\testbcp.txt" -c -S "InstanceServeurSQL" -T |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com