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 :

[SQL2K8]Ecrire un fichier depuis une procédure stockée


Sujet :

Développement SQL Server

  1. #1
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut [SQL2K8]Ecrire un fichier depuis une procédure stockée
    Bonjour,

    je voudrai qu'une procédure stockée écrive un fichier lorsqu'elle est lancée. Est-ce possible ? Ou vais-je devoir me résoudre à utiliser bcp ?

    Merci pour vos réponses

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    En T/SQL c'est impossible, je pense.

    Peut être avec une proc en SQLCLR en permission EXTERNAL ou UNSAFE (si ton DBA l'accepte).

    Mais je ne vois pas pourquoi passer par bcp dans tous les cas. Les solutions ne manquent pas :

    -par exemple, envoyer les données une Queue SSB avec un consommateur capable d'écrire le fichier en question.

    - le plus simple peut être : utiliser un package SSIS pour exporter les données vers un fichier.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    salut,

    Tu n'expliques pas en détail ce que tu veux faire mais tu peux essayer la commande xp_cmdshell :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec master.dbo.xp_cmdshell 'echo chaine > d:\fichier.txt'
    mais attention à la bidouille ...

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 792
    Points
    4 792
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    En T/SQL c'est impossible, je pense.
    non, on peut le faire avec bcp mais c'est très lourd.

    comme dit kagemaru, dis-nous exactement ce que tu veux faire

  5. #5
    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,

    Effectivement SQL n'est pas une langage qui est conçu pour gérer des fichiers

    non, on peut le faire avec bcp mais c'est très lourd
    BCP est un utilitaire fourni avec SQL Server, il ne faut pas le confondre avec SQL et son implémentation T-SQL.

    Comme écrit précédemment, on ne sait pas ce que vous voulez faire, soyez plus précis

    @++

  6. #6
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    Finalement, ça serait fait en C# pour des raisons de "réutilisation de l'existant" puisqu'une dll fait déjà précisement l'export dont j'ai besoin...

    Mais, par curiosité, je veux bien que nous étudions le sujet, si vous le permettez :

    Il y a une série de procédures stockées qui réalisent des traitements sur une base de données (récupération de données de 2 serveurs liés, traitement de ces données correspondant aux besoins définis par l'utilisateur concernant la génération et le contrôle des données). A la fin, je dois sortir un fichier qui correspond exactement au résultat d'une requête SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select col1, ..., colN 
    from table1 join ... join tableN 
    where condition1 ... conditionN
    Étant donné que tout le process est déjà sous forme de procédure stockées, j'aurai voulu que le fichier soit généré depuis une procédure stockée, pour que ce soit uniforme, et parce que le Controler lançant les procédures stockées ne gérait que des procédures stockées (comme dit au début, il va finalement apprendre à utiliser aussi des dll...)

  7. #7
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    Si vous voulez rester dans le cadre des procédures stockées, pensez à utiliser conjointement la procédure stockée système xp_cmdshell et l'utilitaire en ligne de commande bcp qui vous permettront de créer un fichier texte avec le contenu du résultat de votre requête.


    ++

  8. #8
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    Effectivement, appeler l'exécutable bcp depuis la procédure stockée, c'est aussi une solution

    Merci !

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

Discussions similaires

  1. Accès à un fichier depuis une procédure stockée
    Par greg75 dans le forum Sybase
    Réponses: 2
    Dernier message: 09/03/2007, 10h02
  2. Réponses: 27
    Dernier message: 08/03/2007, 16h09
  3. Création de fichier depuis une procédure stockée
    Par xavier ringoise dans le forum SQL
    Réponses: 2
    Dernier message: 07/03/2006, 09h45
  4. Envoyer un mail depuis une procédure stockée
    Par bd0606 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 03/10/2005, 11h51
  5. Réponses: 6
    Dernier message: 18/05/2005, 14h04

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