Какой тип данных 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 в одном столбце, для меня это не имеет смысла, так как в источнике они представляют собой разные типы данных.