2017-02-21 6 views
1

I einen Nachrichtenfluss mit einem Rechenknoten und einem MQOutput Knoten haben, die wie folgt aussieht:IIB/esql wie XMLTYPE von Oracle-Tabelle OutputRoot.XMLNSC fortzupflanzen

MQInput->Compute->MQOutput 

In den Rechenknoten abzurufen I ein Array von XML-Dokumenten aus einer oracle-Datenbank wie folgt aus:

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

ich festgestellt, dass dies korrekt funktioniert, dann versuche ich die XML an den MQOutput Knoten wie folgt zu setzen:

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; 

Es gibt keine Fehler, wenn der Flow ausgeführt wird, aber nichts wird in die Ausgabewarteschlange gestellt. Ich suche nach einer Anleitung, wie der XMLTYPE korrekt aus der Oracle-Datenbank genommen und auf den MQOutput-Knoten übertragen werden kann. verwenden getBlobVal

Dank

Antwort

1

Ich habe es meine Änderung der SQL-Abfrage zu arbeiten.

Neue SQL-Abfrage:

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