IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Exporter le résultat d'une procédure stockée vers un fichier texte utilisant BCP


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 80
    Points : 54
    Points
    54
    Par défaut Exporter le résultat d'une procédure stockée vers un fichier texte utilisant BCP
    Bonjour,
    j'ai une procédure stockée (sp_nomprenom)qui a deux parametres en entrée @para1 et @para2 cette procédure genere des enregistrements de type chaine de caractere(Nom et prenom)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    use BDD1
    DECLARE @FileName varchar(50),
                 @bcpCommand varchar(2000),
                 @MonSQL varchar(100),
                 @BCPexe varchar(100)      
     
     
     
    set @MonSQL='EXECUTE [BDD1].[dbo].[sp_nomprenom] @para1,@para2 '
     
     
    set @BCPexe='C:\"Program Files"\"Microsoft SQL Server"\100\Tools\Binn\bcp.exe'
    SET @FileName='C:\fichier.txt'
    SET @bcpCommand=@BCPexe+' "'+@MonSQL+'" queryout "'+@FileName+'" -T -C -c -S ' + @@ServerName + ''
    select @bcpCommand
    EXEC master..xp_cmdshell @bcpCommand
    quand j'excute ce code sql server genere l'erreur suivante
    SQLState = S1000, NativeError = 0
    Error = [Microsoft][SQL Server Native Client 10.0]Unable to open BCP host data-file
    NULL

    Est ce que vous pouvez svp m'aider a resoudre ce petit probleme
    merci d'avance

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Un moyen est de rerouter la sortie d'une proc vers une table temporaire globale et d'exporter cette dernière. Il faut donc procéder en deux étapes :
    1) sqlcmd.exe
    2) bcp.exe

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Points : 6 775
    Points
    6 775
    Billets dans le blog
    4
    Par défaut
    pour faciliter la double étape, il est possible d'insérer directement le résultat d'une procédure dans une table via un INSERT EXEC.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    INSERT INTO maTable
    EXEC maProcedure @Param1, @Param2;

    A savoir que la table doit posséder la même structure, ou bien avoir le DDL des champs à renseigner dans le INSERT (classique je dirais).

    Ensuite, le BCP est assez simple à mettre en place

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bcp maBase.monSchema.maTable out "monFichier.csv" -T -c

    Au pire, si la lecture de table ne passe pas, un select * dans le bcp fonctionne tout aussi bien

    Cordialement,
    Lyche
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

Discussions similaires

  1. Exporter le resultat d'une procedure stockée vers un fichier text
    Par messi1987 dans le forum Développement
    Réponses: 1
    Dernier message: 26/03/2015, 07h59
  2. Récupérer le résultat d'une procédure stockée
    Par DanZzz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/11/2006, 22h08
  3. Problème de récup de résultats d'une procédure stockée
    Par an_merle dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 12/01/2006, 10h08
  4. [SQL Server]Recupération du résultat d'une procédure stockée
    Par navis84 dans le forum Bases de données
    Réponses: 8
    Dernier message: 04/04/2005, 20h53
  5. [C#] Récupérer le résultat d'une procédure stockée
    Par fabrice1596 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/10/2004, 13h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo