Как преобразовать столбец типа CLOB в тип VARCHAR в хранимой процедуре в DB2 и преобразовать в формат JSON с помощью Mule

Мой запрос в хранимой процедуре выглядит следующим образом:

BEGIN
            DECLARE C1 CURSOR WITH RETURN TO CALLER FOR
            SELECT A.PAYLOADMSGID, A.EXCEPTIONID, A.EVENTSOURCE, A.INTERFACEID,
            A.CREATIONTIME, A.SOURCEPROTOCOL, A.ERRORMESSAGE, B.SEVERITY,
            B.INTERFACENAME, C.PAYLOAD
            FROM E_MESSAGE AS A, E_CONFIG AS B, E_PAYLOAD AS C
            WHERE A.SOURCEQUEUE LIKE '%' AND A.PAYLOADMSGID LIKE 'I000' AND A.INTERFACEID LIKE '%'
            AND A.EVENTSOURCE LIKE '%' AND A.CREATIONTIME LIKE '%'
            AND A.SOURCEPROTOCOL LIKE '%' AND B.SEVERITY LIKE '%' AND B.INTERFACENAME LIKE '%' 
            AND C.PAYLOAD LIKE '%' AND A.INTERFACEID = B.INTERFACEID AND A.PAYLOADMSGID = C.PAYLOADMSGID;       
    open C1;    
    END

В приведенном выше запросе поле C.PAYLOAD имеет тип CLOB в таблице. Получив его, я пытаюсь преобразовать его в JSON в Mule с помощью преобразователя ObjecttoJSON. Но я получаю следующую ошибку:

ОШИБКА 2016-04-07 16: 01: 41,559 [[тест] .HTTP_Listener_Configuration.worker.01] org.mule.exception.DefaultMessagingExceptionStrategy: ******************** ************************************************* ********** Сообщение: [jcc] [10120] [11936] [3.64.82] Недопустимая операция: Lob закрыт. ERRORCODE = -4470, SQLSTATE = null (через цепочку ссылок: java.util.Entry ["значение"] -> java.util.LinkedList [0] -> org.mule.util.CaseInsensitiveHashMap ["PAYLOAD"] -> com .ibm.db2.jcc.am.je ["characterStream"]) (org.codehaus.jackson.map.JsonMappingException) Код
: MULE_ERROR - 2 -------------- -------------------------------------------------- ---------------- Стек исключений: 1. [jcc] [10120] [11936] [3.64.82] Недопустимая операция: Lob закрыт. ERRORCODE = -4470, SQLSTATE = null (com.ibm.db2.jcc.am.SqlException)
com.ibm.db2.jcc.am.bd:663 (null) 2. [jcc] [10120] [11936 ] [3.64.82] Неверная операция: Lob закрыт. ERRORCODE = -4470, SQLSTATE = null (через цепочку ссылок: java.util.Entry ["значение"] -> java.util.LinkedList [0] -> org.mule.util.CaseInsensitiveHashMap ["PAYLOAD"] -> com .ibm.db2.jcc.am.je ["characterStream"]) (org.codehaus.jackson.map.JsonMappingException)
org.codehaus.jackson.map.JsonMappingException: 218 (null) 3. [jcc] [ 10120] [11936] [3.64.82] Недопустимая операция: Lob закрыт. ERRORCODE = -4470, SQLSTATE = null (через цепочку ссылок: java.util.Entry ["значение"] -> java.util.LinkedList [0] -> org.mule.util.CaseInsensitiveHashMap ["PAYLOAD"] -> com .ibm.db2.jcc.am.je ["characterStream"]) (org.codehaus.jackson.map.JsonMappingException) (org.mule.api.transformer.TransformerException)
org.mule.module.json.transformers .ObjectToJson: 103 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transformer/TransformerException.html) -------------------- -------------------------------------------------- ---------- Трассировка стека корневого исключения: com.ibm.db2.jcc.am.SqlException: [jcc] [10120] [11936] [3.64.82] Недопустимая операция: Lob закрыт. ERRORCODE = -4470, SQLSTATE = null в com.ibm.db2.jcc.am.bd.a (bd.java:663) в com.ibm.db2.jcc.am.bd.a (bd.java:60) в com.ibm.db2.jcc.am.bd.a (bd.java:94) + еще 3 (установите ведение журнала уровня отладки или '-Dmule.verbose.exceptions = true' для всего)


Может ли кто-нибудь помочь решить эту проблему. Заранее спасибо.


person mani24991    schedule 07.04.2016    source источник
comment
Вы пробовали stackoverflow.com/a/22760068/387927?   -  person David Dossot    schedule 07.04.2016
comment
Привет, Дэвид, я попытался добавить прогрессивныйStreaming = 2 в свой URL-адрес подключения. Это вызывает следующую ошибку: org.mule.exception.DefaultMessagingExceptionStrategy: Сообщение: для класса com.ibm.db2.jcc.am.a не найден сериализатор и не обнаружены свойства для создания BeanSerializer (чтобы избежать исключения, отключите SerializationConfig.Feature. FAIL_ON_EMPTY_BEANS)) (через цепочку ссылок: java.util.Entry [значение] - ›java.util.LinkedList [0] -› org.mule.util.CaseInsensitiveHashMap [PAYLOAD] - ›com.ibm.db2.jcc.am. je [asciiStream])   -  person mani24991    schedule 08.04.2016
comment
Ах :( Извините, это стоило попробовать. Надеюсь, кто-нибудь с правильным ответом появится.   -  person David Dossot    schedule 08.04.2016
comment
Можете ли вы поместить объект в переменную и попытаться вызвать его   -  person Satheesh Kumar    schedule 10.04.2016