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

MS SQL Server Discussion :

[debutant] extraction de données


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut [debutant] extraction de données
    bonjour

    voila, j'ai une base sql server 2000 avec plein de tables et je souhaitarai extraire certaines données (à intervalle régulier si possible) dans des fichiers textes :

    Faut-il utiliser une procédure stockée ? et comment ?
    Faut-il utiliser les DTS ?
    Faut-il utiliser un trigger ?

    j'ai vu aussi un message sur le forum du 16 juillet ou on parle d'une instruction "bcp".

    je suis un peu perdu là, donc si quelqu'un peut me guider ne serait-ce qu'un peu

    merci.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Points : 502
    Points
    502
    Par défaut
    Le meilleur moyen est un DTS. J'ai presque 50 exportations automatisees par semaine, toutes des DTS, j'exporte des fichiers Excel, Foxpro, texte, CSV, etc.

    Tu peux meme gerer l'envoi de email a partir de vbcript dans tes DTS. En fait, tu peux executer n'importe quel vbscript dans ton DTS.

    Ensuite, tu n'as qu'a coder un petit fichier .vbs pour appeller toutes tes DTS et ensuite en sceduler l'execution dans Windows Scheduler.

    Voila.

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    merci
    mais je tiens finalement à utiliser bcp (on me l'impose en fait).

    je dois pouvoir inscrire des executions de requête ou de procédure stockée vers un fichier texte.

    il ya un message du 16 juillet 2004 qui parle de ça

    declare @FileName varchar(50), @bcpCommand varchar(2000)
    set @FileName = REPLACE('c:\res_'+CONVERT(char(8),GETDATE(),1)+'.txt','/','-')
    set @bcpCommand = 'bcp "orderhan..V_FormatCatCompta" out "'
    set @bcpCommand = @bcpCommand + @FileName
    /* print @bcpCommand */
    exec master..xp_cmdshell @bcpCommand

    j'ai adapté mais il ya une erreur : pas de login et de password.
    j'ai donc rajouté le mot de passe et l'utilisateur avec -U -P

    declare @FileName varchar(50), @bcpCommand varchar(2000)
    set @FileName = 'c:\res_test'
    set @bcpCommand = 'bcp "test_thibot..lieu" out "'
    set @bcpCommand = @bcpCommand + @FileName + '-U"sa" -P""'
    /* print @bcpCommand */
    exec master..xp_cmdshell @bcpCommand

    (ma base s'appelle test_thibot et ma table lieu)

    j'ai le message suivant et donc une erreur du type :

    Mot de passe :
    SQLState = S1000, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]Impossible d'ouvrir le fichier de données de l'hôte BCP
    NULL

    si quelqu'un peut m'aider
    merci

  4. #4
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set @bcpCommand = @bcpCommand + @FileName + '-U"sa" -P""'
    tu as oublié les quotes de fermeture de ton fichier.

    comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set @bcpCommand = @bcpCommand + @FileName + '" -U"sa" -P""'
    A+

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    merci encore, maintenant j'ai un truc du genre

    NULL
    Tapez le type de stockage du champ role_name [char] :

    role_name est le champs de ma table.
    (j'ai veuilliez à ce qu'il n'y ai pas de valeur null car j'avais peur que ça gêne)

    là par contre je vois vraiment pas.

  6. #6
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    Ceci te permet de definir ton fichier format (.fmt) qui te permet de faire de l'import dans ta table avec BCP IN.
    tu n'a qu'a saisir la taille de tes champs, il te demandera aussi les separateur entre tes champs (";" par exemple) , et celui entre les lignes .


    A+

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    j'approche doucement mais surement....grace à votre aide



    j'ai trouvé un truc qui marche

    CREATE PROCEDURE test
    (@FileName varchar(255))
    AS
    DECLARE @BCPCommand varchar(255)
    SET @BCPCommand = 'BCP db1..TableName out E:\Export\' + @FileName +
    ' /T /c'
    EXECUTE master..xp_cmdshell @BCPCommand
    GO

    Le problème c'est que j'ai bien un fichier avec le résultat de la table "TableName" sauf que moi ce que je veux c'est la même chose pour une requête ou une procédure stockée !!!!!
    Je veux pouvoir mettre le résultat de ma requête ou de ma procédure dans un fichier txt.

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    bon, je crois que j'ai trouvé un moyen :
    au lieu de mettre le nom d'une table j'utilise une vue et là l'instruction "bcp" fonctionne car la vue est bien considéré comme un objet de la base.

    gros merci à Babyneedle et MAMMAR

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 3.X] extraction de données, debutant
    Par Benji152515 dans le forum Général Python
    Réponses: 6
    Dernier message: 03/04/2015, 17h48
  2. [Debutant] extraction d'une string
    Par adilou1981 dans le forum Langage
    Réponses: 5
    Dernier message: 28/06/2005, 10h54
  3. [Debutant] Stocker mes données en XML ou BDD ?
    Par buffyann dans le forum XQUERY/SGBD
    Réponses: 32
    Dernier message: 11/06/2004, 00h54
  4. Extraction de données sur des fichiers excel
    Par iupgeii dans le forum MFC
    Réponses: 3
    Dernier message: 23/01/2004, 14h53
  5. [debutant]envoie de données
    Par miloux32 dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 14/08/2003, 11h24

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