Si l’on tente d’exécuter l’instruction suivante :
bcp « SELECT query_plan FROM ELSUKET.dbo.unTable » queryout « C:\toto.txt » -c -t| -T -S ELSUKET
dans une fenêtre d’invite de commandes ou bien à l’aide de la procédure stockée xp_cmdshell, nous obtenons l’erreur :
‘-T’ is not recognized as an internal or external command, operable program or batch file.
Comment faire pour éviter cela ? C’est très simple :
Il suffit en fait de précéder le pipe par un accent circonflexe, ce qui dans notre cas donnerait la commande :
BCP « SELECT query_plan FROM ELSUKET.dbo.unTable » queryout « C:\toto.txt » -c -t^| -T -S ELSUKET
Le résultat ne se fait pas attendre :
Starting copy…
27 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total : 172 Average : (156.98 rows per sec.)
Bon BCP !
ElSüket
C’est tout à fait le cas
On peut aussi faire simplement :
BCP « SELECT query_plan FROM ELSUKET.dbo.unTable » queryout « C:toto.txt » -c -t »| » -T -S ELSUKET
Il me semble que dans ton exemple « ELSUKET » est à la fois nom de base et nom d’instance :
¤ ELSUKET nom de base de données
———————————
SELECT query_plan FROM ELSUKET.dbo.unTable
¤ ELSUKET nom d’instance
———————————
-S ELSUKET
A+