IIB/Esql如何将XMLTYPE从oracle表传播到OutputRoot.XMLNSC
我有一个带有计算节点和MQOutput节点的消息流,如下所示:IIB/Esql如何将XMLTYPE从oracle表传播到OutputRoot.XMLNSC,xml,oracle,ibm-integration-bus,extended-sql,Xml,Oracle,Ibm Integration Bus,Extended Sql,我有一个带有计算节点和MQOutput节点的消息流,如下所示: MQInput->Compute->MQOutput declare xmlDoc row; set xmlDoc.rows[] = passthru('select XMLTYPE.getClobVal(xml_document) as xml from my_table where something=something'); FOR xml AS xmlDoc.rows[] DO CRE
MQInput->Compute->MQOutput
declare xmlDoc row;
set xmlDoc.rows[] = passthru('select XMLTYPE.getClobVal(xml_document) as xml from my_table where something=something');
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;
在compute节点中,我从oracle数据库检索xml文档数组,如下所示:
MQInput->Compute->MQOutput
declare xmlDoc row;
set xmlDoc.rows[] = passthru('select XMLTYPE.getClobVal(xml_document) as xml from my_table where something=something');
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;
我验证了这是否正常工作,然后尝试将XML放入MQOutput节点,如下所示:
MQInput->Compute->MQOutput
declare xmlDoc row;
set xmlDoc.rows[] = passthru('select XMLTYPE.getClobVal(xml_document) as xml from my_table where something=something');
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节点的正确方法的指导
谢谢我成功地将SQL查询更改为使用
getBlobVal
新的SQL查询:
set xmlDoc.rows[] = passthru('select mt.xml_document.getBlobVal('UTF8') as xml from my_table mt where something=something');