用于混合XML和HL7v2数据的SQL Server数据类型是什么?

时间:2016-02-19 18:29:15

标签: sql-server xml sqldatatypes hl7 hl7-cda

考虑MS SQL数据库中的一列,该列将容纳可能较大的块或XML或管道分隔的HL7v2数据。

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

这对我们正在做的事情并不理想。如果我要将此列转换为其他数据类型,建议采用什么方式?我正在考虑nvarchar(max)似乎它会处理它,但我并不精通SQL数据类型以及使用不同类型对这些数据的影响。

3 个答案:

答案 0 :(得分:3)

除了nvarchar(max)之外,别无选择。

其他选项包括varchar(max)varbinary(max)。您可能需要Unicode,因此无法使用varchar。它可以将它存储为varbinary,但使用它会很烦人。

答案 1 :(得分:1)

使用HAPI将HL7消息从ER7(管道分隔)转换为XML encoding。这样,您可以使用单个SQL Server XML列来处理所有事情。它将为您提供使用XQuery查询HL7消息内容的额外好处。

答案 2 :(得分:-1)

正如尼克斯所说,将管道分隔为XML并将其保留在XML中是最好的选择,尝试在同一列中保留xml和管道分隔值对我来说毫无意义,因为在源代码上它们是不同的数据类型。