我在 Oracle 数据库中存储了一些 EDI 消息(X12、HL7 等)。我有时想提取单个字段(例如 ISA-03)。目前,我有一些非常难看的 sql。我想创建一个 PL/SQL 包以使其更容易,并且想知道是否有人已经这样做了。
我想象这样的事情:
选择
edi.x12.extract_field(clob_column, 'ISA', 4)
从
编辑表
最佳答案
虽然我从未将 HL7 消息按原样存储在数据库中,但它应该是可能的。
HL7(和XML)的想法是它是系统用来传输信息的通用格式。它从未被设计为“可储存”的物品。通常,我会将数据从仓库格式中提取到特定的 HL7 消息中,然后将其发送到 MQHub/eGate 进行传输。在返回时执行相反的操作,提取我正在仓储的字段并保存它们。 IE。 HL7 不应该被存储,所以我没有。
听完讲座。 :)
我会建议每个段的函数/过程并将消息拆分为临时表。
example of split in oracle
关于plsql - 用于解析 EDI(X12、NCDPP、HL7)的 PL/SQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/234909/