| Начало » Использование СУБД » Microsoft SQL Server » Cтранный формат xml Переход к форуму:
	| 
		
			| Cтранный формат xml [сообщение #2800] | Wed, 19 July 2023 23:01  |  
			| 
				
				
					|  prospector Сообщений: 5
 Зарегистрирован: July 2023
 | Junior Member |  |  |  
	| После выгрузки с помощью bcp xml получается странного формата. 
 Код выгрузки:
 
 Получаем xml:declare
	@strSQL				nvarchar(1024)
	,@cmd				varchar(1024)
select @strSQL = ''
	+ 'select ''<?xml version=""1.0"" encoding=""utf-8""?>'' + ( '
	+ 'select CURRENT_TIMESTAMP [@date], ( '
	+ 'select ( '
		+ 'select * '
		+ 'from ( '
			+ 'select 	ENT_ART, REST_QTY '
			+ 'from ' + @DBName + '..ADV_CRM_EXPORT_ENTITIES '
		+ ') AS v(articul, quantity) '
		+ 'for xml path(''item''), TYPE '
	+ ') '
	+ 'for xml path(''items''), TYPE '
	+ ') '
	+ 'for xml path(''shop'') '
	+ ') '
select @cmd = 'bcp "'
	+ @strSQL
	+ '" '
    + 'queryout "' + @OutputFileName + '" -w -C1251 -r -T -x';
exec xp_cmdshell @cmd
  
 Значениями NUL размер файла доводится до размера 65КB.
 С одной стороны валидаторы говорят, что файл валидный.
 Но с другой стороны в браузере такой файл не отображается. Плюс наличие мусора и завышение размера тоже не нравится.
 Если из переменной @strSQL убрать строку 'select ''<?xml version=""1.0"" encoding=""utf-8""?>'' + ( ' и завершающую скобку, то файл получается нормальный.
 Подскажите пожалуйста как убрать завершающие NUL.
 [Обновления: Wed, 19 July 2023 23:11] Известить модератора |  
	|  |  |  
	|  |  
	|  |  
	|  | 
 
 
 Текущее время: Fri Oct 31 16:10:59 GMT+3 2025 
 Общее время, затраченное на создание страницы: 0.01274 секунд |