Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/11/2011, 11h26   #1
Invité de passage
 
Inscription : novembre 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 8
Points : 1
Points : 1
Par défaut Flat File DT_STR to SQL 2008 R2 Float en DTSX

Bonjour,

Peut-être qq a déjà rencontré ce problème de conversion, du coup je me permet de soliciter votre aide.
J'ai un fichier texte en entrée que je souhaite importer en BDD via un package DTSX.

Ma Source (Flat File)
Col5 (DT_STR) Col6(DT_STR)
00000001220.000; 00000000792.04
00000001200.000; 00000000094.77
00000002500.000; 00000002381.48

Le composant de conversion me retourne une erreur DT_STR to DT_R8
Le composant colonne derrivé me retourne une erreur (DT_R8) Col5

Ma solution de contournement est de faire une importation dans une table temporaire avec un type nvarchar puis d'effectuer un cast "select CAST([Col5] as float) from Temp_Table puis d'effectuer un insert dans ma table de destination.

Cette solution fonctionne mais j'ai plus de 200 fichier à importe en base avec des types identiques donc la création de table temporaire ou bien de curseur n'est pas viable pour des soucis de performances et de maintenance.

Si vous avez des idées ou des solutions à proposer, je suis preneur.
Merci de m'éclairer si vous avez une idée.

C'est quand même incroyable qu'on ne puisse pas faire une conversion de type string vers du float en dtsx ? Ou bien ai je zapper une étapes dans mon dataflow ?
HatchFirst est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 15h24   #2
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 725
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 725
Points : 6 849
Points : 6 849
Vous pouvez utiliser une tâche de conversion pour cela.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 15h32   #3
Invité de passage
 
Inscription : novembre 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 8
Points : 1
Points : 1
Citation:
Envoyé par mikedavem Voir le message
Vous pouvez utiliser une tâche de conversion pour cela.
Le composant de conversion me retourne une erreur DT_STR to DT_R8
HatchFirst est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 15h45   #4
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 773
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 773
Points : 1 837
Points : 1 837
Quelle est exacatement l'erreur lorsque vous utiliser le composant de conversion ?
Je viens de faire un test et j'ai bien une erreur lorsque ma décimale est avec un ".", par contre ça fonctionne avec une "," à voir donc du côté des infos régionales. Sinon un petit REPLACE pas beau.
__________________
Alexandre Chemla - Consultant MS BI chez Masao
Jinroh77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 15h47   #5
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 725
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 725
Points : 6 849
Points : 6 849
Yep,

Je pencherai également pour un problème de séparateur.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 15h58   #6
Invité de passage
 
Inscription : novembre 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 8
Points : 1
Points : 1
Citation:
Envoyé par Jinroh77 Voir le message
Quelle est exacatement l'erreur lorsque vous utiliser le composant de conversion ?
Je viens de faire un test et j'ai bien une erreur lorsque ma décimale est avec un ".", par contre ça fonctionne avec une "," à voir donc du côté des infos régionales. Sinon un petit REPLACE pas beau.

Oui effectivement le "." et "," peuvent fonctionner avec un replace pas beau mais le hic c'est que je ne peux pas généraliser l'import sur tous mes fichiers étant donné que mon séparateur change.

Je regrette simplement que le DTSX ne sois pas aussi souple que le DTS a la mode 2000.

Merci pour vos responses.
HatchFirst est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 17h24   #7
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 159
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 159
Points : 1 608
Points : 1 608
Citation:
Envoyé par HatchFirst Voir le message
Le composant de conversion me retourne une erreur DT_STR to DT_R8
Comment avez vous configure votre composant de conversion ?
Avez vous essaye avec un composant de colonne derivee et une expression comme ceci ?
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 17h39   #8
Invité de passage
 
Inscription : novembre 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 8
Points : 1
Points : 1
Sujet clot,

Cela vient bien des paramètres régionnaux et linguistiques côté server simplement pour les décimal lui indiquer "." au lieux de la ","

SQL SERVER 2008 R2 n'acceptera pas la conversion alors que SQL SERVER 2000 s'en contre balance.

Encore une incomprehension de plus chez microsoft.

Merci a tous pour votre réactivité.
HatchFirst est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h56.


 
 
 
 
Partenaires

Hébergement Web