SQL 服务器数据类型用于混合 XML 和 HL7v2 数据?

What SQL Server datatype to use for mixed XML and HL7v2 data?

考虑 MS SQL 数据库中的一列,该列将容纳潜在的大块或 XML 或竖线分隔的 HL7v2 数据。

目前(由于没有使用前瞻性思维)它目前被输入为 XML 因为最初我们只接受 XML 数据。虽然从技术上讲这 可以 工作,但这意味着 HL7v2 消息中的所有 XML 特殊字符都被编码(& --> & 等)。

这对于我们正在做的事情来说并不理想。如果我要将此列转换为不同的数据类型,会推荐什么?我在想 nvarchar(max),因为它似乎可以处理它,但我并不精通 SQL 数据类型以及对此类数据使用不同类型的含义。

除了nvarchar(max)之外真的没有太多选择。

其他选项是 varchar(max)varbinary(max)。您可能需要 Unicode,因此您不能使用 varchar。可以将其存储为 varbinary,但使用起来会很烦人。

使用 HAPI 将 HL7 消息从 ER7(竖线分隔)转换为 XML encoding。这样,您就可以对所有内容使用单个 SQL 服务器 XML 列。它还会给您带来额外的好处,即能够使用 XQuery 查询 HL7 消息内容。

正如 Nicks 所说,将分隔的竖线转换为 XML 然后坚持使用 XML 是最好的选择,尝试坚持 xml 和管道分隔的值对我来说在同一列中这没有意义,因为在源代码中它们是不同的数据类型。