Пытаюсь выгрузить в XML-файл данные из SQL базы(SQL Server 2000), код такой:
Declare
cmd varchar(500);
Declare @OutputFileName varchar(500);
Declare @result int;
Set @OutputFileName = 'D:\SQL1C\For_Web.xml';
--Set
cmd = 'BCP "set nocount on; USE SQL1C; Select top 3 CODE, RTrim(DESCR) as DESCR From SC31 Order by code For XML raw " queryout "'+ @OutputFileName + '" -w -C1251 -r -T';
Set
cmd = 'BCP "set nocount on; USE SQL1C; EXEC SQL1C.dbo.EXPORT_TO_XML_FOR_WEB_TEST " queryout "'+ @OutputFileName + '" -w -C1251 -r -T';
Exec @result = master..xp_cmdshell
cmd;
select @result as result;
print
cmd;
Если в тексте непосредственно запрос, то работает, если вызов процедуры содержащей этот запрос то такая ошибка:
output
---------------------------------
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC SQL Server Driver]Bcp файлы сервера должны содержать хотя бы один столбец
NULL
(3 row(s) affected)
result
-----------
1
(1 row(s) affected)
BCP "set nocount on; USE SQL1C; EXEC SQL1C.dbo.EXPORT_TO_XML_FOR_WEB_TEST " queryout "D:\SQL1C\For_Web.xml" -w -C1251 -r -T
Сам текст процедуры EXPORT_TO_XML_FOR_WEB_TEST:
CREATE PROCEDURE EXPORT_TO_XML_FOR_WEB_TEST AS
--set nocount on;
Select top 10 CODE, RTrim(DESCR) as DESCR From SC31 Order by code For XML raw
--
GO