Я использую WebSphere Message Broker, у которого есть поток сообщений, который читает XML-сообщения из очереди. Если сообщения имеют НЕСТАНДАРТНЫЙ тип (не соответствующий стандартам XML), они преобразуются в объект BLOB и проверяются в базе данных Oracle.
Проблема заключается в том, что НЕСТАНДАРТНЫЕ сообщения вместо проверки в d/b попадают в очередь возврата.
При расследовании я узнал, что поле, в котором хранится проверенное сообщение в базе данных, имеет тип CLOB, тогда как поток сообщений преобразует НЕСТАНДАРТНОЕ сообщение в тип BLOB.
Мне было интересно, возможно ли это без литья или преобразования.
вот код (в ESQL), где НЕСТАНДАРТНОЕ сообщение преобразуется в тип BLOB:
MOVE aonMSG TO "OutputRoot"."BLOB";
SET msgChar = aonMSG;
SET messageType = 'NON_STANDARD_MESSAGE';
SET msgChar = CAST(OutputRoot."BLOB"."BLOB" As CHAR CCSID 819 ENCODING
OutputRoot.MQMD.Encoding );