IIB / Esql如何将XMLTYPE从oracle表传播到OutputRoot.XMLNSC

时间:2017-02-21 20:06:27

标签: xml oracle ibm-integration-bus extended-sql

我有一个带有计算节点和MQOutput节点的消息流,如下所示:

MQInput->Compute->MQOutput

在计算节点中,我从oracle数据库中检索xml文档数组,如下所示:

declare xmlDoc row;
set xmlDoc.rows[] = passthru('select XMLTYPE.getClobVal(xml_document) as xml from my_table where something=something');

我确认这是正常的,然后我尝试将XML放到MQOutput节点,如下所示:

    FOR xml AS xmlDoc.rows[] DO
        CREATE LASTCHILD OF OutputRoot DOMAIN('XMLNSC')
                                    PARSE(CAST(xml.XML AS BLOB CCSID InputProperties.CodedCharSetId ENCODING InputProperties.Encoding), 
                                    InputProperties.Encoding,
                                    InputProperties.CodedCharSetId);    

        PROPAGATE;
    END FOR;
    RETURN FALSE;

流运行时没有错误,但输出队列没有任何内容。我正在寻找关于从oracle数据库获取XMLTYPE并将其放入MQOutput节点的正确方法的一些指导。

由于

1 个答案:

答案 0 :(得分:1)

我让它改变SQL查询以使用getBlobVal

新SQL查询:

set xmlDoc.rows[] = passthru('select mt.xml_document.getBlobVal('UTF8') as xml from my_table mt where something=something');