用于解析 EDI 的 PL/SQL(X12、NCPDP、HL7)
我有一些 EDI 消息(X12、HL7 等)存储在 Oracle 数据库中。 我有时想提取单个字段(例如 ISA-03)。 目前,我有一些非常丑陋的sql。 我想创建一个 PL/SQL 包以使其更容易,并且想知道是否有人已经这样做了。
我想象这样的事情:
选择 edi.x12.extract_field( clob_column, 'ISA', 4) 从 编辑表
I have some EDI messages (X12, HL7, etc ...) stored in an Oracle database. I sometimes want to pull out individual fields (e.g. ISA-03). Currently, I have some really ugly sql. I'd like to create a PL/SQL package to make it easier and was wondering if anybody had already done this.
I imagine something like:
select
edi.x12.extract_field( clob_column, 'ISA', 4)
from
edi_table
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
虽然我从未将 HL7 消息按原样存储在数据库中,但这应该是可能的。
HL7(和 XML)的想法是,它是系统用来传输信息的通用格式。 它从未被设计为“可存储”物品。 通常,我会将数据从仓库格式提取到特定的 HL7 消息中,并将其发送到 MQHub/eGate 进行传输。 在返回时,执行相反的操作,提取我正在仓储的字段并保存它们。 IE HL7 不应该被存储,所以我没有。
讲座够了。 :)
我建议每个段一个函数/过程,并将消息拆分到临时表中。
拆分示例甲骨文
While I never stored the HL7 message as is in a database it should be possible.
The idea of HL7 (and XML) is that it's a common format for systems to use to transfer information. It was never designed as a "storable" item. Usually, I would pull the data out of the warehouse format into a particular HL7 message and send it to the MQHub/eGate for transmitting. On the return do the opposite extract the fields I'm warehousing and save those. I.E. HL7 should not be stored so I don't have one.
Enough of the lecture. :)
I would suggest a function/procedure per segment and split the message into a temp table.
example of split in oracle