2

我有一个带有计算节点和 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 节点的正确方法的一些指导。

谢谢

4

1 回答 1

1

我让它工作我将 SQL 查询更改为使用getBlobVal.

新的 SQL 查询:

set xmlDoc.rows[] = passthru('select mt.xml_document.getBlobVal('UTF8') as xml from my_table mt where something=something');
于 2017-02-22T15:35:42.227 回答