考虑MS数据库中的一个列,它将容纳潜在的大块或XML或管道分隔的HL7v2数据。
目前(由于不使用前瞻性思维),它目前被输入为XML,因为最初我们只接受XML数据。虽然从技术上讲,这是可以工作的,但这意味着HL7v2消息中的所有XML特殊字符都在被编码(& --> &等)。
这对我们正在做的事情来说并不理想。如果我要将该列转换为不同的数据类型,建议如何?我认为nvarchar(max)似乎可以处理它,但我对这种数据类型和使用不同类型的数据的含义并不熟悉。
发布于 2016-02-19 18:35:53
除了nvarchar(max),真的没有太多的选择。
其他选项要么是varchar(max),要么是varbinary(max)。您可能需要Unicode,因此不能使用varchar。它可以将它存储为varbinary,但是使用它会很烦人。
发布于 2016-02-20 20:10:03
使用HAPI将HL7消息从ER7 (管道分隔)转换为XML编码。这样,您就可以对所有内容使用单个Server列。它将为您提供使用HL7查询XQuery消息内容的额外好处。
发布于 2016-02-22 07:14:04
正如Nicks所说,将管道分隔为XML,然后在XML中持久化是最好的选择,尝试将xml和管道分隔的值保存在同一列中对我来说没有任何意义,因为在源上它们是不同的数据类型。
https://stackoverflow.com/questions/35512360
复制相似问题