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 893
    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 893
    Points : 53 129
    Points
    53 129
    Billets dans le blog
    6
    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 +

  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 790
    Points
    6 790
    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

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