|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() |
Bonjour,
Je souhaite faire un export vers un fichier text via sqlcmd: J'execute donc le code suivant: Code :
sqlcmd -E -Sinstance -o C:\rep\toto.txt -Q "set nocount on select * from test;" -h-1 -W exemple: numeric (15, 0) me donne une longeur de 18 Quand j'execute: Voila ce que j'obtiens: Type; Precision; longeur; ce que j'ai dans mon fichier; INT ; 10; 4 ; 4; Numeric (15,2) ; 15; 17; 18; NVARCHAR ; 1; 2; 2; Est ce que quelqu'un pourrais m'expliquer le fonctionement et savoir comment je dois calculer les longeurs reels Merci par avance |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() ![]() |
Citation:
ceci pour avoir une idée claire sur l’ordonnancement des colonnes dans le fichier de sortie Code :
sqlcmd -E -Sinstance -o C:\rep\toto.txt -Q "set nocount on select colonne1, colonne2, colonnex from test " -h-1 -W Citation:
Mais il me semble avec Numeric (15,2) Si on a par exemple : 123456789012345.12 ça fait 18 caractères en comptant le point (.) ? Non ? |
||
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() |
L'ajout des colonnes ne changera rien.
Pour les numerics il ne faut pas prendre en compte le (.) si tu as un NUMERIC(5,3) : --> 5 correspond à la taille totale et 3 correspond au nb de digit apres la virgule. Pour mon probleme Ce que je ne comprend pas, c'est pourquoi dans mon fichier txt je n'ai pas les meme longeur que dans la procedure stoquée . Meme en partant du principe que j'ai un espace par défaut lors de l'extract j'ai toujours un espace plus important entre mes champs ex:je 'ai un datetime suivi d'un numeric(20,0) resultat: 2009-11-15 17:47:19.533......................0 2010-11-15 17:47:19.533......................0 2009-11-15 17:47:19.533......................0 J'ai donc une longeur de 23 pour le champ datetime et une longeur de 22 (+1 correspondant à l'espace que j'ai supposé etre un séparateur). Si quelqu'un peut m'éclairer la dessus ? |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() |
Pour le nombre de caractères je pense qu'il faut prendre en compte le point (.) dans les décimaux
|
|
00
|
Copyright © 2000-2012 - www.developpez.com