2011-01-10 2 views
0

Создано консольное приложение, которое имеет два параметра: один представляет собой команду типа «отправить», а вторая - строку xml, такую ​​как "<Messages><msg>My message</msg></Messages>". Консольное приложение вернет что-то вроде: "<Messages><msg>Handled message</msg></Messages>" после выполнения.вызов xp_cmdshell с параметром xml

Вопрос заключается в том, как вызвать хранимую процедуру xp_cmdshell, упомянутую выше консольное приложение, используя T-SQL. Основная проблема заключается в том, как отправить параметр с помощью xml. Например, упомянутые выше консольного приложения, может быть выполнено с этим выражением:

"c:\consoleapp.exe" send "<Messages><msg>My message</msg></Messages>" 

Это выражение может быть выполнен без проблем с консоли, но не с xp_cmdshell. В случае xp_cmdshell SQL сервера outut будет возвращать:

< was unexpected at this time. 
+0

Попробуйте двойные кавычки (' ""') в XML. – SLaks

+0

Спасибо за ответ, но это мне не помогло – apros

ответ

0

Ответ таков сценарий:

EXEC master.dbo.xp_cmdshell '""D:\ConsoleTest.exe" "<Messages><msg>My message</msg></Messages>""' 
Смежные вопросы