Вопрос

У меня есть несколько сообщений EDI (X12, HL7 и т. д.), хранящихся в базе данных Oracle.Иногда мне хочется извлечь отдельные поля (например,ИСА-03).В настоящее время у меня есть действительно уродливый sql.Я хотел бы создать пакет PL/SQL, чтобы упростить задачу, и мне было интересно, сделал ли кто-нибудь это уже.

Я представляю себе что-то вроде:

Выберите edi.x12.extract_field (clob_column, 'isa', 4) из edi_table

Это было полезно?

Решение

Хотя я никогда не хранил сообщение HL7 в базе данных в том виде, в каком оно есть, это должно быть возможно.

Идея HL7 (и XML) заключается в том, что это общий формат, используемый системами для передачи информации.Он никогда не задумывался как «хранимый» предмет.Обычно я извлекал данные из формата хранилища в конкретное сообщение HL7 и отправлял их в MQHub/eGate для передачи.По возвращении сделайте обратное: извлеките поля, которые я храню, и сохраните их.И.Е.HL7 хранить не следует, поэтому у меня его нет.

Хватит лекции.:)

Я бы предложил функцию/процедуру для каждого сегмента и разделил сообщение на временную таблицу.

пример разделения в oracle

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top