Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Outils
Outils Forum d'entraide sur les outils gravitant autour de MS-SQL Server, tels que bcp, TDS, ...
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 17/01/2012, 10h12   #1
Membre régulier
 
Inscription : juin 2008
Messages : 117
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 117
Points : 88
Points : 88
Par défaut [Export BCP] Un espace est inséré dans les champs ou il n'y a pas de valeurs

Bonjour,

J'utilise l'utilitaire BCP pour faire un export et j'ai un soucis avec les champs pour lesquels j'ai la valeur NULL ou '' (chaine de caractère vide) en base. Il me remplace systématiquement ces 2 valeurs par un espace dans mon fichier d'export. Or je souhaite que s'il n'y a pas de valeur en base, il ne me mette rien entre mes 2 séparateurs de champs.

Voici la commande exécuté :

Code :
1
2
 
EXEC master..xp_cmdshell  'BCP "Exec Base..ps_export" queryout "c:\export.txt" -T -C 0 -w -t"|~" -S DB_PROD
ps_export est une procédure stocké qui contient ma requête d'extract. Pour les champ. J'ai appliqué la fonction ISNULL pour renvoyer '' si le champs contient NULL.

J'ai cherché dans la doc bcp et vérifié tout les paramètre BCP et aucun ne spécifie qu'il faut mettre un espace sir la valeur vaut NULL ou ''

Si vous avez une soluce ou une astuce je suis preneur.

Olivier
bilbot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 10h58   #2
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 139
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 139
Points : 2 470
Points : 2 470
Envoyer un message via Yahoo à zinzineti
Qu'est ce qui vous empêche d'exclure les NULLs dans la procédure stockée Base..ps_export ?

c'est quoi le but visé ?
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 11h07   #3
Membre régulier
 
Inscription : juin 2008
Messages : 117
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 117
Points : 88
Points : 88
Justement je les exclu grâce au isnull (je replace null par '')

Actuellement, j'obtiens un fichier qui a cette forme :
Code :
1
2
3
 
DATA|~DATA|~ |~ 
DATA|~ |~DATA|~
entre 2 séparateurs si en base j'ai NULL ou '' (chaine vide) BCP m'a rajouté un espace.

et moi ce que je veux c'est (les espaces entre 2 séparateurs de colonnes ont été supprimés):

Code :
1
2
3
 
DATA|~DATA|~|~
DATA|~|~DATA|~
bilbot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 11h26   #4
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 724
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 724
Points : 6 848
Points : 6 848
Pourquoi vouloir exclure les absences de valeurs ? Supprimez vos fonctions ISNULL de votre procédure. Vous obtiendrez le résultat voulu.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 11h59   #5
Membre régulier
 
Inscription : juin 2008
Messages : 117
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 117
Points : 88
Points : 88
Effectivement. Par contre je pige pas pourquoi il remplace la chaine vide '' par ' '

En tout cas merci.
bilbot 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 21h30.


 
 
 
 
Partenaires

Hébergement Web