Какой тип данных SQL Server использовать для смешанных данных XML и HL7v2?

Рассмотрим столбец в базе данных MS SQL, в котором будут размещаться либо потенциально большие куски, либо данные HL7v2 с разделителями и XML-кодами.

В настоящее время (из-за того, что мы не используем дальновидность), он в настоящее время типизирован как XML, потому что изначально мы только принимали данные XML. Хотя технически это может работать, это означает, что все специальные символы XML в сообщениях HL7v2 кодируются (& --> & так далее.).

Это не идеально для того, что мы делаем. Что бы я порекомендовал, если бы я преобразовал этот столбец в другой тип данных? я думал nvarchar(max) кажется, что он справится с этим, но я не очень разбираюсь в типах данных SQL и последствиях использования различных типов для таких данных.

3 ответа

Решение

Там действительно не так много выбора, кроме nvarchar(max),

Другие варианты либо varchar(max) или же varbinary(max), Вам может понадобиться Unicode, поэтому вы не можете использовать varchar, Это будет работать, чтобы сохранить его как varbinary, но было бы просто неприятно работать.

Используйте HAPI для преобразования сообщений HL7 из ER7 (с разделителем канала) в кодировку XML. Таким образом, вы можете использовать один столбец SQL Server XML для всего. И это даст вам дополнительное преимущество возможности запроса содержимого сообщений HL7 с использованием XQuery.

Как говорит Никс, преобразование канала с разделителями в XML и последующее сохранение в XML - лучший вариант, пытаясь сохранить значения с разделителями xml и pipe в одном столбце, для меня это не имеет смысла, так как в источнике они представляют собой разные типы данных.

Другие вопросы по тегам