Bonjour à tous,

je me trouve confronté à un souci technique auquel je n'arrive pas à trouver de réponse.

Pour faire simple, je souhaite utiliser l'utilitaire bcp et la commande xp_cmdshell afin d'automatiser l'extraction de données d'une table de ma BDD.
Lors de cette extraction, j'ai besoin d'afficher des noms de colonnes et des numéros de lignes, j'ai fait ma requête SQL qui fonctionne parfaitement lors d'un test avec Toad for SQL Server mais qui ne marche plus lorsque je mets le tout dans une procédure stockée avec appel a bcp et xp_cmdshell.

Je vous mets l'exemple de ma procédure stockée si jamais quelqu'un peut m'apporter une piste ou une solution.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
BEGIN
  SET NOCOUNT ON;
DECLARE @L_CURRENTDATE DATETIME
DECLARE @L_OUT_PATH VARCHAR(100)
DECLARE @L_OUT_FILENAME VARCHAR(100)
DECLARE @QUERY NVARCHAR(4000)
 
 
SET @L_CURRENTDATE = GETDATE()
SET @L_OUT_PATH = 'C:\Users\XXXX\'
SET @L_OUT_FILENAME =@Service+'_Test_'+@QuarterYear+'.csv'
 
 
SET @QUERY = 'select row_number() OVER (order by Direct_Participant_BIC),
       Direct_Participant_BIC+'STEP2' AS '2' ,
       Total_Payments_Sent AS '3',
       Daily_Average_Payments_Sent AS '4',
       Total_Payments_Received	AS '5',
       Daily_Average_Payments_Received AS '6',
       Sending_First_XXXX	AS '7',
       Sending_Remaining AS '8',
       Min_Charging_For_Sending AS '9',
       Charging_Remaining AS '10',
       Charging_Receiving AS '11',
       Total_Tier_Charges_To_Be_Billed AS '12',
       Average_Price_For_Transaction_Sent AS '13',
       Average_Price_For_Transaction_Received AS '14'
       from [BDD]..['+@Table_Name+']'
 
SET @QUERY = 'bcp "'+@QUERY+'" queryout ' + @L_OUT_PATH + @L_OUT_FILENAME + ' -c -t";" -T '
PRINT @QUERY
 
SET @QUERY = 'execute master.dbo.xp_cmdshell '+''''+@QUERY+''''
 
EXECUTE master.dbo.sp_executesql @QUERY,N'@L_CURRENTDATE DATETIME',@L_CURRENTDATE
 
RAISERROR( '', 0, 1) WITH NOWAIT
END
Le fait de renommer les colonnes avec 'AS' ne passe pas et cela me sort une erreur à chaque fois, pourtant il me faudrait pouvoir renommer ces colonnes pour sortir un fichier correct.

Merci d'avance pour votre aide.