powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Sqlserveragent и nvarchar(max)
25 сообщений из 36, страница 1 из 2
Sqlserveragent и nvarchar(max)
    #38189560
SeriousDanil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Нуждаюсь в помощи и совете вашем по следующему вопросу.
Конфигурация. SQL server 2008 SE (10.00.5512.0) на Windows Server 2008 SE R2
Имеется запрос дергающий данные с удаленного сервера в виде xml. Затем с помощью docpreparexml эти данные обрабатываются и кладутся в таблицу. Запрос офорлен в виде хранимой процедуры, которая вызывается агентом SQL сервера по расписанию.
Всё хорошо, но есть одно но. При получении записи длиной более 8 000 байт процедура валится с ошибкой несмотря на то что тип данных везде указан как nvarchar(max). Такое поведение наблюдается при выполнении процедуры агентом и при помощи sqlcmd. При вызове данной процедуры из Management Studio она (процедура) отрабатывает нормально, без ошибок.
Вопрос. Как заставить агента работать с данными длина которых превышает 8000 байт?
ЗЫ. Ошибка говорит о том что неожиданный конец xml файла. Т.е. при выполнении агентом часть данных превышающая предел просто отбрасывается.
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38189656
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriousDanilТакое поведение наблюдается при выполнении процедуры агентом и при помощи sqlcmd. При вызове данной процедуры из Management Studio она (процедура) отрабатывает нормально, без ошибок.
Код выполняет сервер, а не агент, sqlcmd или студия.
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38189712
SeriousDanil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Glory,
Отлично. Спасибо за коррекцию неверной формулировки. Но всё же вопрос по существу. Поведение сервера выполняющего код при вызове процедуры из sqlcmd или через агента отличается от его же поведения при выполнении кода при вызове процедуры через Management Studio. Почему?
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38189721
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriousDanilПоведение сервера выполняющего код при вызове процедуры из sqlcmd или через агента отличается от его же поведения при выполнении кода при вызове процедуры через Management Studio. Почему?
ну так и сравните то, что разные приложения передают серверу на выполнения
Начните прямо с команд создания соединения.
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38189735
SeriousDanil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Glory,
Я жеж пишу, что данные обрубаются до 8 000 байт. Конечно я всё сравнил. Т.е. изначально при получении данных с сервера закачиваются все данные при вызове из Management Studio и только первые 8000 байт при вызове с помощью агента и sqlcmd. Вызывается одна и та же процедура.
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38189740
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriousDanilЯ жеж пишу, что данные обрубаются до 8 000 байт.
Это ваш вольный перевод сообщения об ошибке ?

SeriousDanilКонечно я всё сравнил.
Настройки коннекто входили в это "всё" ? А протокол соединения ? А логин соединения ?
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38189780
SeriousDanil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Glory,
авторВыполняется от имени пользователя: NT AUTHORITY\система.Синтаксический анализ XML: строка 6, символ 13, непредвиденное завершение входных данных [SQLSTATE 42000] (Ошибка 9400). Шаг завершился с ошибкой.

Входные данные непредвиденно завершаются только если они превышают своим размером 8000 байт. Если меньше искомого предела, то задание отрабатывает без ошибок.
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38189787
SeriousDanil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SeriousDanil,

UPD. И в студии и в задании содержиться всего две строчки
Код: sql
1.
2.
USE Database
EXEC spSQLSOAPCALL
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38189789
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВыполняется от имени пользователя: NT AUTHORITY\система.
И в Management Studio тоже ?
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38189799
SeriousDanil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Glory,
Я понимаю ваше стремление ткнуть в наиболее детские болезни и невнимательность мою, но всё же.
Это не зависит от учетной записи (проверено с помощью учетки администратора домена и по совместительству sa на сервере через sqlcmd).
Повторюсь. При длине входных данных менее 8000 байт задание отрабатывает без ошибок. При большей длине валится с ошибкой указанной выше.
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38189834
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriousDanilЯ понимаю ваше стремление ткнуть в наиболее детские болезни и невнимательность мою, но всё же.
Вы сраниваете 3 клиентских приложения
Если работа одного отличается от работы других, то значит причина в приложении, а не в сервере.

SeriousDanilПовторюсь. При длине входных данных менее 8000 байт задание отрабатывает без ошибок. При большей длине валится с ошибкой указанной выше.
И как вы предлагаете узнать, что собственно вы там в процедуре написали для извлечения более 8000 байт ?
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38189885
SeriousDanil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Glory,
ОК. Я полагал что это несложный вопрос и можно обойтись теорией, но раз нет так нет. Вот запрос.
Код: sql
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[spSQLSOAPCall]
AS
DECLARE
 @URL		SysName
,@Body		XML
,@hdoc		int
,@DAY_COUNT	int
,@b1		int
,@kod_agenta int
,@DOC_CODE int
,@DOC_STATUS int
,@SMS_CODE int
,@DATE_CREATE nvarchar(10)
,@ORDER_DESCRIPTION nvarchar(255)
,@MESSAGE nvarchar(300)
,@GUID uniqueidentifier
,@CODE_DOGOVOR int


--устанавливаем статус документа в -1, в случае падения обработки строк заказа связанного с превышением длины переменной
--статус заказа обновляться не будет
set @DOC_STATUS=-1

--шапки заказов
CREATE TABLE #DOCUMENT_ORDER_VEDK
(
PKid int		PRIMARY KEY IDENTITY,
SMS_CODE int, 
DOCUMENT_TYPE_NAME nvarchar(100) DEFAULT NULL,
STOCK_CODE	nvarchar(10)		DEFAULT NULL,
DOCUMENT_STATUS int	DEFAULT 0,
DOCUMENT_STATUS_NAME nvarchar(100) DEFAULT NULL,
CODE_SALE_POINT nvarchar(10) DEFAULT NULL,
DOCUMENT_CODE nvarchar(100) DEFAULT NULL,
DATE_CREATE	datetime,
DATE_CREATE_TEXT nvarchar(10) DEFAULT NULL,
SHIPMENT_DATE datetime,
SHIPMENT_DATE_TEXT nvarchar(10) DEFAULT NULL,
SHIPMENT_TIME	nvarchar(10) DEFAULT NULL,
GPS_POSITION	nvarchar(100) DEFAULT 0,
EMPLOYEE_ID int	DEFAULT 0,
EMPL_SURNAME nvarchar(100),
EMPL_NAME nvarchar (100),
EMPL_MIDDLE_NAME nvarchar (100),
ORDER_DESCRIPTION nvarchar (255),
PAYMENT_METHOD nvarchar(100),
CODE_JUR_PERSON nvarchar(100)
)

--продукция в заказе
CREATE TABLE #DOCUMENT_ORDER_ITEM_VEDK
(
PKid int		PRIMARY KEY IDENTITY,
SMS_CODE	int,
ARTICLE	nvarchar(20),
IU_NAME	nvarchar(100),
PRICE	money,
QUANTITY	int,
PRICE_LIST_CODE	nvarchar(5)
)


-- Создание запроса по проверочной процедуре
;WITH XMLNAMESPACES (DEFAULT 'http://tempuri.org/')
SELECT	 @URL	= 'https://sms.rosspirtprom.ru/SMS_SERVER/SMS_Server_V1.asmx'
,@Body		= (
SELECT	ConnectionString='Data Source=Lightning2;Initial Catalog=sms_dev;User ID=some_id;Password=some_pw'
, Query='_1S_CHECK_SP|@PROC_NAME=_1S_CHECK_SP'
FOR	XML Path('QueryOpen_1S_ToXML'),Type)
-- Вызов WebMethod-а
EXEC	dbo.spSOAPMethodCall
@URL
,NULL
,@Body OUT
-- Результат
; WITH XMLNAMESPACES (DEFAULT 'http://tempuri.org/')

--Для QueryOpen_1S_ToXML
SELECT @Body = CONVERT(xml, REPLACE(REPLACE(REPLACE(CONVERT(nvarchar(max),@Body),'&gt;','>'), '&lt;', '<'),' xmlns="http://tempuri.org/"', ''))

--извлекаем значение из XML документа
EXEC sp_xml_preparedocument	@hdoc OUTPUT, @Body
set @DAY_COUNT = (SELECT * FROM OPENXML (@hdoc,'/QueryOpen_1S_ToXMLResponse/QueryOpen_1S_ToXMLResult/RESULT/Row',1)
WITH(DAY_COUNT int './DAY_COUNT'))
EXEC sp_xml_removedocument @hdoc

--Проверяем счетчик дней. Если всё пучком запускаем процесс.
IF @DAY_COUNT > 0
--получаем шапки заказов. готовим запрос
BEGIN
;WITH XMLNAMESPACES (DEFAULT 'http://tempuri.org/')
SELECT	 @URL	= 'https://sms.rosspirtprom.ru/SMS_SERVER/SMS_Server_V1.asmx'
,@Body		= (
SELECT	ConnectionString='Data Source=Lightning2;Initial Catalog=sms_dev;User ID=some_id;Password=some_pw'
, Query='_1S_GET_ORDER_DOCUMENTS_V2'
FOR	XML Path('QueryOpen_1S_ToXML'),Type)
EXEC	dbo.spSOAPMethodCall
@URL
,NULL
,@Body OUT

-- загружаем заголовки заказа
; WITH XMLNAMESPACES (DEFAULT 'http://tempuri.org/')

SELECT @Body --до конвертации

SELECT @Body = CONVERT(xml, REPLACE(REPLACE(REPLACE(CONVERT(varchar(max),@Body),'&gt;','>'), '&lt;', '<'),' xmlns="http://tempuri.org/"', ''))

SELECT @Body --после конвертации

EXEC sp_xml_preparedocument	@hdoc OUTPUT, @Body



INSERT INTO #DOCUMENT_ORDER_VEDK 
SELECT * FROM OPENXML (@hdoc,'/QueryOpen_1S_ToXMLResponse/QueryOpen_1S_ToXMLResult/RESULT/Row',1)
WITH(
SMS_CODE int './SMS_CODE',
DOCUMENT_TYPE_NAME nvarchar(100) './DOCUMENT_TYPE_NAME',
STOCK_CODE nvarchar(10) './STOCK_CODE',
DOCUMENT_STATUS int './DOCUMENT_STATUS',
DOCUMENT_STATUS_NAME nvarchar(100) './DOCUMENT_STATUS_NAME',
CODE_SALE_POINT nvarchar(10) './CODE_SALE_POINT',
DOCUMENT_CODE nvarchar(10) './DOCUMENT_CODE',
DATE_CREATE datetime './DATE_CREATE',
DATE_CREATE_TEXT nvarchar(10) './DATE_CREATE_TEXT',
SHIPMENT_DATE datetime './SHIPMENT_DATE',
SHIPMENT_DATE_TEXT nvarchar(10) './SHIPMENT_DATE_TEXT',
SHIPMENT_TIME nvarchar(10) './SHIPMENT_TIME',
GPS_POSITION nvarchar(100) './GPS_POSITION',
EMPLOYEE_ID int './EMPLOYEE_ID',
EMPL_SURNAME nvarchar(50) './EMPL_SURNAME',
EMPL_NAME nvarchar(50) './EMPL_NAME',
EMPL_MIDDLE_NAME nvarchar(50) './EMPL_MIDDLE_NAME',
ORDER_DESCRIPTION nvarchar(255) './ORDER_DESCRIPTION',
PAYMENT_METHOD nvarchar(100) './PAYMENT_METHOD',
CODE_JUR_PERSON nvarchar(100) './CODE_JUR_PERSON'
)
EXEC sp_xml_removedocument @hdoc
END

-- загружаем товар по заказу
declare a1 cursor local  forward_only static read_only for
(
SELECT SMS_CODE FROM #DOCUMENT_ORDER_VEDK WHERE DOCUMENT_STATUS=12
)
OPEN a1
FETCH FROM a1 into @b1
WHILE @@FETCH_STATUS = 0
BEGIN
;WITH XMLNAMESPACES (DEFAULT 'http://tempuri.org/')
SELECT	 @URL	= 'https://sms.rosspirtprom.ru/SMS_SERVER/SMS_Server_V1.asmx'
,@Body		= (
SELECT	ConnectionString='Data Source=Lightning2;Initial Catalog=sms_dev;User ID=some_id;Password=some_pw'
, Query='_1S_GET_ORDER_DOCUMENT_ITEMS_VIEW1|@SMS_CODE=' + CONVERT(nvarchar(10),@b1)
FOR	XML Path('QueryOpen_1S_ToXML'),Type)
EXEC	dbo.spSOAPMethodCall
@URL
,NULL
,@Body OUT
; WITH XMLNAMESPACES (DEFAULT 'http://tempuri.org/')

SELECT @Body --до конвертации заказов

SELECT @Body = CONVERT(xml, REPLACE(REPLACE(REPLACE(CONVERT(varchar(max),@Body),'&gt;','>'), '&lt;', '<'),' xmlns="http://tempuri.org/"', ''))

SELECT @Body --после конвертации заказов

EXEC sp_xml_preparedocument	@hdoc OUTPUT, @Body
INSERT INTO #DOCUMENT_ORDER_ITEM_VEDK SELECT * FROM OPENXML (@hdoc,'/QueryOpen_1S_ToXMLResponse/QueryOpen_1S_ToXMLResult/RESULT/Row',1)
WITH (
SMS_CODE int './SMS_CODE',
ARTICLE nvarchar(20) './ARTICLE',
IU_NAME nvarchar(100) './IU_NAME',
PRICE money './PRICE',
QUANTITY int './QUANTITY',
PRICE_LIST_CODE nvarchar(5) './PRICE_LIST_CODE'
)
--загрузка в БД Маркет
--Вытаскиваем код агента и создаем документ в MbДокументы
SET @kod_agenta= (SELECT TOP 1 t.[Код торгового агента] from [торговые агенты] t 
INNER JOIN [Физические_лица] f ON t.[Код физического лица]=f.[Код физического лица]
LEFT OUTER JOIN #DOCUMENT_ORDER_VEDK d ON f.ФИО LIKE '%' + d.EMPL_NAME + '%' and f.ФИО LIKE '%' + d.EMPL_SURNAME + '%'
WHERE d.SMS_CODE = @b1
)
SELECT @SMS_CODE=SMS_CODE, @DATE_CREATE=CONVERT(varchar(10),SHIPMENT_DATE,104)
, @ORDER_DESCRIPTION=ORDER_DESCRIPTION, @GUID=NEWID(), @CODE_DOGOVOR = dog.[Код договора]
FROM #DOCUMENT_ORDER_VEDK d INNER JOIN Договора dog ON d.CODE_SALE_POINT = dog.[Код партнера в договоре]
WHERE SMS_CODE = @b1
AND dog.[Текущий договор]=1
--Получаем код документа и кладем товар	в MbТоварооборот
EXEC  @DOC_CODE = mb_ЭкспортДокумента @SMS_CODE, @DATE_CREATE, @ORDER_DESCRIPTION, @CODE_DOGOVOR, 5, 0, @GUID, @kod_agenta = @kod_agenta


INSERT INTO mbТоварооборот 
SELECT @DOC_CODE, t.[Код товара], 0, d.QUANTITY
, d.PRICE, 0, 0
FROM [Поля товара партнеров] t INNER JOIN #DOCUMENT_ORDER_ITEM_VEDK d 
ON t.[Артикул] = d.ARTICLE
WHERE t.[Код партнера]=14699

--создаем документ
EXEC @DOC_STATUS = mb_Создание_документов_КПК @DOC_CODE, @kod_agenta, @MESSAGE OUTPUT

--подтверждаем приемку документа
IF @DOC_STATUS <> -1
BEGIN

	--запись в таблице "Протокол экспорта документов"
	INSERT INTO [Протокол экспорта документов] VALUES (@DOC_STATUS, GETDATE(), CONVERT(datetime, '01/01/1900'), 'Экспорт из САП Молния', @SMS_CODE)

	--изменяем статус документа в САП Молния
	;WITH XMLNAMESPACES (DEFAULT 'http://tempuri.org/')
	SELECT	 @URL	= 'https://sms.rosspirtprom.ru/SMS_SERVER/SMS_Server_V1.asmx'
	,@Body		= (
	SELECT	ConnectionString='Data Source=Lightning2;Initial Catalog=sms_dev;User ID=some_id;Password=some_pw'
	, Query='_1S_SET_DOCUMENT_STATUS|2|@SMS_CODE=' + CONVERT(nvarchar(10),@b1) + '|@NEW_STATUS=4'
	FOR	XML Path('QueryExec_1S'),Type)
	EXEC	dbo.spSOAPMethodCall
	@URL
	,NULL
	,@Body OUT
END

EXEC sp_xml_removedocument @hdoc
DELETE FROM #DOCUMENT_ORDER_ITEM_VEDK
FETCH NEXT FROM a1 INTO @b1
END
CLOSE a1
DEALLOCATE a1

drop table #DOCUMENT_ORDER_VEDK
drop table #DOCUMENT_ORDER_ITEM_VEDK



Падает здесь
Код: sql
1.
2.
3.
4.
5.
--Для QueryOpen_1S_ToXML
SELECT @Body = CONVERT(xml, REPLACE(REPLACE(REPLACE(CONVERT(nvarchar(max),@Body),'&gt;','>'), '&lt;', '<'),' xmlns="http://tempuri.org/"', ''))

--извлекаем значение из XML документа
EXEC sp_xml_preparedocument	@hdoc OUTPUT, @Body



Сразу скажу, что я не знаю почему они присылают мне данные где вместо символов '<' и '>' стоят gt и lt соответственно. По другому никак по их словам.

Далее, я не разработчик БД в которую я заливаю данные, моя задача прикрутить данный костыль, чтобы он не доставлял головной боли никому. Сейчас он не доставляет головной боли никому кроме меня в связи с вышеизложенной проблемой.
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38189890
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriousDanilПадает здесь
Здесь у вас не одна команда, а куча вложенных команд
Какая из них падает ?
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38189905
SeriousDanil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Glory,

Код: sql
1.
EXEC sp_xml_preparedocument	@hdoc OUTPUT, @Body


она падает

падает потому что @Body больше 8000 байт обрезается почему-то при вызове из агента или sqlcmd.
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38189909
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriousDanilпадает потому что @Body больше 8000 байт обрезается почему-то при вызове из агента или sqlcmd.
Ну так как вы узнали, что значение именно обрезается то ?
Как вы узнали какая именно команда его обрезает ?
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38189966
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriousDanilпадает потому что @Body больше 8000 байт обрезается почему-то при вызове из агента или sqlcmd.Уверены, что именно на вызове процедуры? Ваши манипуляции до вызова sp_xml_preparedocument могут приводить к невалидному xml. Например:
Код: sql
1.
2.
3.
declare @Body xml = '<a>&lt;</a>';

SELECT @Body = CONVERT(xml, REPLACE(REPLACE(REPLACE(CONVERT(nvarchar(max),@Body),'&gt;','>'), '&lt;', '<'),' xmlns="http://tempuri.org/"', ''));
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38190130
SeriousDanil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,
Я ж говорю, что на мелких объемах работает. Не работает когда объем данных превышает значение в 8000 байт.
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38190169
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriousDanilЯ ж говорю, что на мелких объемах работает.
Если не хотите разбирать и дебагить ваш код, то никто за вас это делать не будет.
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38190181
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriousDanilinvm,
Я ж говорю, что на мелких объемах работает. Не работает когда объем данных превышает значение в 8000 байт.Вы приверженец принципа "Мой код идеален, это все БГ с Microsoft накосячили"?

У вас @Body типа xml. Неужели непонятно, что если выполнение дошло до EXEC sp_xml_preparedocument @hdoc OUTPUT, @Body, то в @Body валидный xml?
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38190190
SeriousDanil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщем так. Падает здесь
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
--получаем шапки заказов. готовим запрос
BEGIN
;WITH XMLNAMESPACES (DEFAULT 'http://tempuri.org/')
SELECT	 @URL	= 'https://sms.rosspirtprom.ru/SMS_SERVER/SMS_Server_V1.asmx'
,@Body		= (
SELECT	ConnectionString='Data Source=Lightning2;Initial Catalog=sms_dev;User ID=some_id;Password=some_pw'
, Query='_1S_GET_ORDER_DOCUMENTS_V2'
FOR	XML Path('QueryOpen_1S_ToXML'),Type)
EXEC	dbo.spSOAPMethodCall
@URL
,NULL
,@Body OUT



Конкретно на этой строке
Код: sql
1.
@Body OUT



Говорит вот что:
авторСообщение 9400, степень серьезности 16, состояние 1, строка 40: Синтаксический анализ XML: строка 6, символ 22, непредвиденное завершение входных данных [SQLSTATE 42000]



Вытащить данный @Body из планировщика я не могу (не знаю как). При запуске из студии выдает нормальный xml без выпендрежа, который затем нормально обрабатывается.
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38190199
SeriousDanil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,
Мне понятно это, в предыдущем посте отписался что изначально неверно указал место где падает. Сейчас нашел точное место.
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38190206
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriousDanilКонкретно на этой строке
Код: sql
1.
@Body OUT


В этой строке - вызов процедуры dbo.spSOAPMethodCall
Код который для вас является по всей видимости непогрешимым.
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38190214
SeriousDanil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Glory,
Я и не прошу дебагить мой код за меня. Я в тупике и не знаю куда копать даже, потому и прошу помочь хотя бы указать вероятные причины или направления в которых стоит копать. Пока же я в ситуации что "ищу проблему под фонарем, а не там где потерял, потому что здесь светлее".
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38190215
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriousDanilЯ в тупике и не знаю куда копать даже, потому и прошу помочь хотя бы указать вероятные причины или направления в которых стоит копать.
вот сюда
SeriousDanilЯ и не прошу дебагить мой код за меня
...
Рейтинг: 0 / 0
Sqlserveragent и nvarchar(max)
    #38190218
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriousDanil,

Тогда разбирайтесь с dbo.spSOAPMethodCall.
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Sqlserveragent и nvarchar(max)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]