Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 image (hex) to xml (не видит строки кроме первой)  [new]
Legushka
Member

Откуда: Казань
Сообщений: 630
помогите перевести формат в читаемый многострочный

есть xml таблица, зашифрована в HEX, хранится в image поле

пробую расшифровать:
select convert(varchar, convert(varbinary, t.PoleXML))  from ...
возвращает только первую строку:
<?xml version="1.0" encoding="

остальные строки пропадают
проблема думаю в этой части:
convert(varbinary, t.PoleXML)
22 июн 15, 09:36    [17800783]     Ответить | Цитировать Сообщить модератору
 Re: image (hex) to xml (не видит строки кроме первой)  [new]
Legushka
Member

Откуда: Казань
Сообщений: 630
т.е. не xml таблица а xml данные
22 июн 15, 09:42    [17800809]     Ответить | Цитировать Сообщить модератору
 Re: image (hex) to xml (не видит строки кроме первой)  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5975
https://msdn.microsoft.com/en-us/library/ms187928(v=sql.120).aspx :

Syntax for CONVERT:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

Arguments

expression
Is any valid expression.
data_type
Is the target data type. This includes xml, bigint, and sql_variant. Alias data types cannot be used.
length
Is an optional integer that specifies the length of the target data type. The default value is 30.
22 июн 15, 09:48    [17800827]     Ответить | Цитировать Сообщить модератору
 Re: image (hex) to xml (не видит строки кроме первой)  [new]
Legushka
Member

Откуда: Казань
Сообщений: 630
разобрался:
convert(varchar(8000), convert(varbinary(max), substring(t.PoleXML,1,8000))) as 'часть1',
convert(varchar(8000), convert(varbinary(max), substring(t.PoleXML,8001,8000))) as 'часть2',
и тд
таким образом я вижу весь текст
22 июн 15, 10:04    [17800866]     Ответить | Цитировать Сообщить модератору
 Re: image (hex) to xml (не видит строки кроме первой)  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5975
Legushka
разобрался:
convert(varchar(8000), convert(varbinary(max), substring(t.PoleXML,1,8000))) as 'часть1',
convert(varchar(8000), convert(varbinary(max), substring(t.PoleXML,8001,8000))) as 'часть2',
и тд
таким образом я вижу весь текст

Странно. Про varbinary(max) вы в курсе, а про varchar(max) - нет?
22 июн 15, 11:37    [17801277]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить