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
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
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.
salut,
Tu n'expliques pas en détail ce que tu veux faire mais tu peux essayer la commande xp_cmdshell :
mais attention à la bidouille ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part exec master.dbo.xp_cmdshell 'echo chaine > d:\fichier.txt'
non, on peut le faire avec bcp mais c'est très lourd.
Code : Sélectionner tout - Visualiser dans une fenêtre à part En T/SQL c'est impossible, je pense.
comme dit kagemaru, dis-nous exactement ce que tu veux faire
Bonjour,
Effectivement SQL n'est pas une langage qui est conçu pour gérer des fichiers
BCP est un utilitaire fourni avec SQL Server, il ne faut pas le confondre avec SQL et son implémentation T-SQL.non, on peut le faire avec bcp mais c'est très lourd
Comme écrit précédemment, on ne sait pas ce que vous voulez faire, soyez plus précis
@++
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 :
É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...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select col1, ..., colN from table1 join ... join tableN where condition1 ... conditionN
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.
++
Effectivement, appeler l'exécutable bcp depuis la procédure stockée, c'est aussi une solution
Merci !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager