|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : avril 2011 Messages : 14 ![]() |
Bonjour,
Je travaille sous SQL Server 2000. Je souhaiterais extraire le résultat d'une requête dans un fichier texte pour ensuite lancer cette requete quotidiennement à une heure précise. Le fichier de sortie pourrait-être un .txt ou mieux un .csv avec un semicolon comme séparateur. Voici ma requête actuelle : Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour
Vous pouvez plannifier un job windows qui lance une commande bcp. Dans votre cas, quelque chose comme : Code SQL :
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : avril 2011 Messages : 14 ![]() |
Bonjour,
Merci de votre rapidité, mais je le job tourne en boucle. J'ai crée un .bat dans lequel j'ai inséré le code que vous me suggérez. La commande défile en boucle dans la fenetre CMD Si j'esssaie de lancer cette commande directement dans la fenetre CMD (sans passer par un .bat), voici ce que j'obtiens : bcp.jpg Merci de votre aide, |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
mettez des doubles quotes pour la requete
|
|
|
00
|
|
|
#6 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
il ne trouve pas la table, donnez lui un coup de main, en précisant la BDD et le schéma :
Code SQL :
|
||
|
|
00
|
|
|
#7 | |
|
Invité de passage
![]() Inscription : avril 2011 Messages : 14 ![]() |
Je suis désolée je débute en SQL, qu'entendez-vous par schéma ?
Entre-temps, j'ai modifié la syntaxe, voilà ce que cela donne : Code :
bcp "SELECT * FROM T_STATISTICS WHERE (EntryDate BETWEEN DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()) - 1, 0) AND DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)) ORDER BY EntryDate" queryout c:\Monfichier.csv -c -t -S VTB\VTB -U sa -P *****;
Citation:
|
|
|
|
00
|
|
|
#8 | |||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
rapidement, les schéma permettent de "découper" votre base en sous-ensemble logiques, par exemple en fonction des domaines d'application.
Par exemple, dans une BDD, vous pouvez avoir une schéma poru toutes les tables qui concernent les compta, un autre pour tout ce qui concerne la production,... Mais vue votre réponse, je pense qu'il s'agit dans votre cas du schéma par défaut, à savoir "dbo" reste à savoir le nom de votre BDD. BDD.dbo.LaTable Citation:
2/ le ";" doit suivre l'option "-t" qui indique le séparateur de champs dans votre CSV (sinon par défaut c'est une tabulation) 3/ si votre mot de passe contient des caracteres spéciaux, mettez le entre guillemets En supposant que le nom de votre serveur de BDD soit VTB, et que votre base de donnée soit également VTB, ca donerait : Code :
|
|||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : avril 2011 Messages : 14 ![]() |
Impeccable, merci beaucoup en utilisant cette commande tout fonctionne
Une dernière petite question, comment faire pour que l'entête des colonnes soient également exportée ?? De plus, lors que j'essaie de lancer ce travail via un batch, le fichier tourne en boucle et aucun fichier n'est généré. Est-il possible de lancer la commande bcp de manière automatique ??? Je souhaiterais que cette extraction soit faite tous les jours. Merci |
|
|
00
|
|
|
#10 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Dommage que ce n'etait pas la première, car bcp ne le permet pas nativement
![]() Il y a donc deux solutions : 1/utiliser autre chose que bcp (genre osql) 2/inclure les noms de colonnes dans votre requete, avec un union all. Mais dans ce cas il faut caster toutes vos colonnes en varchar donc votre requete ressemblerait a : Code SQL :
Pourquoi voulez vous inclure les noms de colonne ? Le csv ne sera-t-il pas par la suite traité automatiquement ? |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com