Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Перекодировка имени поля аналогично перекодировке в тэг при FOR XML  [new]
Ugly tag
Guest
Бывает, что разработчики с богатой фантазией включают в названия полей не буквенно-цифровые символы (а-ля my$item#1#). Тэг XML таких символов содержать не может, поэтому FOR XML делает перекодировку недопустимых символов:
select '' [какое-то поле !@#$%^&*] for xml raw

результат:
<row какое-то_x0020_поле_x0020__x0021__x0040__x0023__x0024__x0025__x005E__x0026__x002A_="" />

Как бы мне, имея на входе строчку 'какое-то поле !@#$%^&*', получить на выходе результат, аналогичный преобразованию имени поля при for xml raw? Пока додумался только до динамического формирования запроса, и вытаскивания оттуда local-name() - но это не подходит, т.к. преобразование надо выполнять в запросе.
29 мар 14, 14:25    [15804887]     Ответить | Цитировать Сообщить модератору
 Re: Перекодировка имени поля аналогично перекодировке в тэг при FOR XML  [new]
MihaZ
Member

Откуда: СПб
Сообщений: 17
Ugly tag, а просто поменять представление имени нельзя?
select '' [какое-то поле !@#$%^&*] as FldName for xml raw
29 мар 14, 16:49    [15805219]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить