powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / проблема с парзингом XML
29 сообщений из 29, показаны все 2 страниц
проблема с парзингом XML
    #40102388
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, у меня есть скрипт, который вызывает процедуру, внутри которой разиться XML. Код процедуры не находится под моим контролем. Я лишь ее вызываю. Когда я запускаю скрипт SSMS и вызываю в нем процедуру, все работает нормально. Когда я вставляю скрипт в джобу, изнутри процедуры прилетает.

"XML parsing: line 10, character 27, unexpected end of input"

Текст русский есть в XML. Специально закодированных символов нет.

Отличается контекст. Другой юзер.

Что тут не так, почему при запуске от меня работает, от другого юзера в джобе нет.

Не выглядит так, что есть проблемы с правами. Есть проблема с какими-то настройками. Возможно с коллешном, кодировкой, языком. Что тут можно сделать?
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102394
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При это в 10 строке вообще стоит

<EndDateTime>2021-08-07T21:17:00</EndDateTime>
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102403
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
Господа, у меня есть скрипт, который вызывает процедуру, внутри которой разиться XML. Код процедуры не находится под моим контролем. Я лишь ее вызываю. Когда я запускаю скрипт SSMS и вызываю в нем процедуру, все работает нормально. Когда я вставляю скрипт в джобу, изнутри процедуры прилетает.

"XML parsing: line 10, character 27, unexpected end of input"

Текст русский есть в XML. Специально закодированных символов нет.

Отличается контекст. Другой юзер.

Что тут не так, почему при запуске от меня работает, от другого юзера в джобе нет.

Не выглядит так, что есть проблемы с правами. Есть проблема с какими-то настройками. Возможно с коллешном, кодировкой, языком. Что тут можно сделать?


ну, типа такого.
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102413
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin

Отличается контекст. Другой юзер.


сравните set-ы своей сессии и сессии sql job
полагаю, что дело в
"SET QUOTED_IDENTIFIER must be ON when you invoke XML data type methods."
link
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102415
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unexpected end of input бывает вот в таких случаях:
Код: sql
1.
2.
3.
4.
select cast(N'
<root>
<EndDateTime>2021-08-07T21:17:0'
as xml)


Код: plaintext
1.
Msg 9400, Level 16, State 1, Line 1
XML parsing: line 3, character 31, unexpected end of input

- наверное, где-то при передаче в джоб xml обрезается.
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102416
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad
a_voronin

Отличается контекст. Другой юзер.


сравните set-ы своей сессии и сессии sql job
полагаю, что дело в
"SET QUOTED_IDENTIFIER must be ON when you invoke XML data type methods."
link



Уже сделал

SET ANSI_NULLS, QUOTED_IDENTIFIER ON;
SET LANGUAGE Russian;
EXECUTE AS USER = '...';
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102425
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

обычно такое при усечении строки. Иногда двоичный ноль может строку обрезать, но тут вроде экранирование должно быть.
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102430
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
Господа, у меня есть скрипт, который вызывает процедуру, внутри которой разиться XML. Код процедуры не находится под моим контролем. Я лишь ее вызываю.

в ХП XML передается каким типом?
Как Вы определяете XML в SSMS и в шаге джоба?
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102435
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше пущай расскажет откель он этот xml получает.
Файл, нибось, читает...
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102641
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222,
xml достается запросом с oracle.
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102679
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

а если попытаться получить эту ошибку в SSMS при помощи настроек сеанса?
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102694
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
a_voronin,

а если попытаться получить эту ошибку в SSMS при помощи настроек сеанса?


Эта ошибка была в SSMS пока я не сделал вот так

set @Document = REPLACE(@Document, N'<?xml version="1.0" encoding="UTF-8"?>', '<?xml version="1.0" encoding="UTF-16"?>');

Тут вот в чем дело. Вызов exec происходит через LinkedServer и кербероса нет
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102695
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

ошибка происходит при присваивании nvarchar(max) параметру или переменной типа xml
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102697
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
aleks222,
xml достается запросом с oracle.

Энто, все равно, что файл читать.
Зависит от региональных настроек профиля пользователя Windows.
Обеспечьте одинаковые - и будет вам щастье.

ЗЫ. Ну или, завязывайте с varchar. Nvarchar и никаких проблем.
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102706
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
set textsize 1000000000 в джобе в том же шаге перед вызовом процедуры стоит?
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102713
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st
set textsize 1000000000 в джобе в том же шаге перед вызовом процедуры стоит?

a_voronin

"XML parsing: line 10, character 27, unexpected end of input"


Рановато про два гига беспокоиться.
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102717
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222
andy st
set textsize 1000000000 в джобе в том же шаге перед вызовом процедуры стоит?

a_voronin

"XML parsing: line 10, character 27, unexpected end of input"


Рановато про два гига беспокоиться.

Я такое словил, когда по умолчанию в агенте nvarchar(max) урезался до 512 символов.
Тогда начал об этом беспокоиться во всех регламентных заданиях, которые тащуть блобы со сторонних источников
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102726
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
andy st
set textsize 1000000000 в джобе в том же шаге перед вызовом процедуры стоит?

a_voronin

"XML parsing: line 10, character 27, unexpected end of input"


Рановато про два гига беспокоиться.


Там никакими гигами не пахнет. размер порядка 426244 байт . К 1 мб не более
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102727
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st
aleks222
пропущено...

пропущено...


Рановато про два гига беспокоиться.

Я такое словил, когда по умолчанию в агенте nvarchar(max) урезался до 512 символов.
Тогда начал об этом беспокоиться во всех регламентных заданиях, которые тащуть блобы со сторонних источников


поведение скрипта меняет про таких манипуляциях
EXEC ('
SET ANSI_NULLS, QUOTED_IDENTIFIER ON;
SET LANGUAGE Russian;
SET DATEFORMAT ymd;
--EXECUTE AS USER = ''...'';

EXEC [DB].[..].[..] ?', @Document) AT [..];


В таком виде он работает в SSMS но не в джобе
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102747
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a_voronin,
в студии textsize по умолчанию большой
а если из студии перед процедурой поставить SET TEXTSIZE 1024 без всего другого ошибка не повторится?
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102753
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st
a_voronin,
в студии textsize по умолчанию большой
а если из студии перед процедурой поставить SET TEXTSIZE 1024 без всего другого ошибка не повторится?


Я уже сказал выше, что ошибку можно повторить в студии убрав

set @Document = REPLACE(@Document, N'<?xml version="1.0" encoding="UTF-8"?>', '<?xml version="1.0" encoding="UTF-16"?>');

Мне удалось запустить скрипт перенеся джоб на тот сервер, где вызывается конечная процедура.

Выглядит так, что при вызове через linked server меняет текущий юзер и региональные настройки.
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102766
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно попробовать помедитировать на
Код: sql
1.
insert into localtable (str) exec ('select @@LANGUAGE') at [..]


Код: sql
1.
insert into localtable (str) exec('select * from sys.dm_exec_sessions where session_id = @@spid for xml path') at [..]


запущенные из джоба
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102782
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st
можно попробовать помедитировать на
Код: sql
1.
insert into localtable (str) exec ('select @@LANGUAGE') at [..]


Код: sql
1.
insert into localtable (str) exec('select * from sys.dm_exec_sessions where session_id = @@spid for xml path') at [..]


запущенные из джоба


Медитировать даже полезно.
Только вот... разбор/генерация ХМЛ от языковых настроек MS SQL не зависит от слова совсем.

ЗЫ. Если же у тредстартера самопальный парсер - тут наука бессильна.
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40102794
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222
Только вот... разбор/генерация ХМЛ от языковых настроек MS SQL не зависит от слова совсем.

может быть. не ковырял парсер настолько сильно, чтобы это подтвердить или опровергнуть :)
но я там для медитации еще и настройки сессии и логины предложил слить.

aleks222
ЗЫ. Если же у тредстартера самопальный парсер - тут наука бессильна.

ошибка вроде стандартная mssql и вылетает на этапе присвоения строки типу xml
повторяется на ура
хотя самописный парсер может запросто мимикрировать под встроенный :)

Под 2019 сервер с его поддержкой UTF-8 вообще можно интересности творить. Может что с этим связано
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40103033
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

в таком случае остается попробовать изменить дефолтные настройки сеанса для сервера.
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40103082
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
a_voronin,

в таком случае остается попробовать изменить дефолтные настройки сеанса для сервера.


Я проблему победил. Был бы настроен Керберос ее не возникло бы вообще.

Суть примерно в следующем.

Есть Сервер А MSSQL Сервер B MSSQL Сервер C Oracle.

нужно достать xml c C и закинуть его в процедуру на А. А на С линка не имеет.

В SSMS на B запускаю скрипт и он спокойно это все делает. Лазет на С и вызывает на А.

Но когда я ставлю скрипт в джобу, он начинает выполнять скрипт под другим юзером. И настройки другие.

В общем я перенес саму джобу на сервер А и все заработало. Пришлось с А на B пускать скрипт, а внутри скрипта обращаться с B на С.
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40103122
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a_voronin,

...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40103138
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

через SSIS нельзя напрямую на С?
...
Рейтинг: 0 / 0
проблема с парзингом XML
    #40103145
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
Но когда я ставлю скрипт в джобу, он начинает выполнять скрипт под другим юзером. И настройки другие.


Proxy Account для джоба не поможет?
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / проблема с парзингом XML
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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