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 :

Automatisation d'un DTS


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 122
    Points : 47
    Points
    47
    Par défaut Automatisation d'un DTS
    Bonjour cher amis!

    J'ai des difficultés à automatiser mon DTS. En effet ce dernier doit charger des données issues d'un fichier txt. le probleme residende dans le fait que le fichier txt en question est dynamique. En d'autres termes la source de données du lot DTS est dynamique.Chaque jour je doit charger dans la table sqlserver les données du fichier du jour. Alors j'essai de resoudre le probleme en utilisant la tache Tâche Propriétés dynamiques. Mais je n'y arrive pas.
    SVP aidez moi!!

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Que veux-tu dire par dynamique ? son contenu change tous les jours ?

    Tu n'es pas obligé de faire un DTS pour faire de l'intégration de données. Tu peux par exemple utiliser la commande BULK INSERT et ses nombreuses options pour l'intégrer à une table , et mettre le tout dans une procédure stockée.

    Ensuite si tu veux l'automatiser, il te faudra créer un job qui t'exécute la procédure stockée tous les jours à telle heure

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 122
    Points : 47
    Points
    47
    Par défaut
    Bonjour amis!

    Par Dynamique, j'entends le fait que son contenu change tous les jours. En effet, son contenu sera le nom du fichier en question à la date du systeme.

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 122
    Points : 47
    Points
    47
    Par défaut
    Peux-tu me donner un petit exemple illustrant l'utilisation de la commande BULK INSERT?

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 122
    Points : 47
    Points
    47
    Par défaut
    Par ailleurs quelqu'un peut-il m'orienter sur le chemin de l'utilisation du DTS comme porte de sortie?

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 122
    Points : 47
    Points
    47
    Par défaut
    Il me faut absolument passer par un DTS pour resoudre ce probleme parcequ'avec la commande BULK INSERT j'ai un problème. La premiere ligne du fichier est très longue alors il me faut la supprimer avant de lancer le chargement du fichier vers la table à partir de la commande BULK INSERT. Mais je n'y ai aucune idée.

  7. #7
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Rebonjour,

    Tu peux utiliser l'option FIRSTROW de BULK INSERT:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    BULK INSERT maTable
    FROM 'C:\monFichier.txt' WITH (FIRSTROW = 2)
    Cela sautera la 1e ligne du fichier

    Tu peux créer ce code dynamiquement puis exécuter la chaîne que tu t'es fabriquée pour gérer le nom de ton fichier :

    Par exemple pour un fichier qui serait monFichierDeLog_08-27-2007 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DECLARE @SQL VARCHAR(256);
    SET @SQL = 'BULK INSERT maTable FROM C:\monFichierDeLog_ ' + CONVERT(VARCHAR, GETDATE(), 10) + '.txt WITH (FIRSTROW = 2)'
    -- PRINT @SQL si tu veux voir la chaîne générée
    EXEC (@SQL);
    Si ton nom de fichier est plus complexe ou que tu ne peux pas le gérer avec un CONVERT(VARCHAR, GETDATE(), monStyle), tu peux utiliser par exemple CONVERT(VARCHAR, DATEPART(day, GETDATE())) et assembler les différentes parties de ta date dans la chaîne ...

  8. #8
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 122
    Points : 47
    Points
    47
    Par défaut
    Ok, mais aucune ligne n'est renvoyée.Pourqoi?

  9. #9
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 122
    Points : 47
    Points
    47
    Par défaut
    Voici le bloc Transact Sql que j'utilise:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    DECLARE @bulk_cmd1 varchar(255)
    SET @bulk_cmd1 = 'BULK INSERT Tccsrate
    FROM ''\\localhost\F:\Projet_Acc\Fichier_Acc\ccsrate-01082007.txt\ccsrate-01082007.txt  ''
    WITH (
           FIRSTROW = 2 ,
           FIELDTERMINATOR = '';'',
           ROWTERMINATOR= ''\r\n''   
          )'
    EXEC(@bulk_cmd1)
    Et voici le message d'erreur qui est généré après l'execution de cette commande Bulk Insert:

    Serveur : Msg 4861, Niveau 16, État 1, Ligne 1
    Insertion en bloc impossible : Le fichier '\\localhost\F:\Projet_Acc\Fichier_Acc\ccsrate-01082007.txt\ccsrate-01082007.txt ' ne peut pas être ouvert. Erreur du système d'exploitation 53(Le chemin réseau n'a pas été trouvé.).

    Comme vous le voyez la commande s'execute mais s'arrete. Je suis donc encore dans l'impasse les gars.

  10. #10
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 122
    Points : 47
    Points
    47
    Par défaut
    Bonjour Amis!

    le probleme persiste!!

  11. #11
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Pourquoi as-tu mis localhost ? ça ne fonctionne pas sans ?

  12. #12
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 122
    Points : 47
    Points
    47
    Par défaut
    En fait j'ai mis le localhost parce que lorsque la notation du serveur n'est pas marquée, une erreur est également générée.

Discussions similaires

  1. Automatisation d'exécution des Lots DTS
    Par w.elassaad dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 01/06/2011, 14h13
  2. Automatiser Import DTS
    Par bennyben87 dans le forum Entreprise Manager
    Réponses: 2
    Dernier message: 20/05/2009, 15h28
  3. Automatisation déploiement DTS
    Par tom-i dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 27/06/2006, 17h20
  4. automatiser l'importation de donnée via DTS
    Par cortex024 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/03/2006, 11h07
  5. [DTS] Passer les var globales d'un lot à un autre
    Par David K. dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 25/07/2003, 13h39

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