考虑MS SQL数据库中的一列,该列将容纳可能较大的块或XML或管道分隔的HL7v2数据。
目前(由于没有使用前瞻性思维)它当前被输入为XML,因为最初我们只接受XML数据。虽然从技术上讲这可以工作,但这意味着HL7v2消息中的所有XML特殊字符都被编码(& --> &
等。)。
这对我们正在做的事情并不理想。如果我要将此列转换为其他数据类型,建议采用什么方式?我正在考虑nvarchar(max)
似乎它会处理它,但我并不精通SQL数据类型以及使用不同类型对这些数据的影响。
答案 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和管道分隔值对我来说毫无意义,因为在源代码上它们是不同的数据类型。