Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 我是否可以在不强制转换的情况下将BLOB对象存储到Oracle DB中的CLOB类型列中_Xml_Oracle_Xml Parsing_Ibm Mq_Messagebroker - Fatal编程技术网

Xml 我是否可以在不强制转换的情况下将BLOB对象存储到Oracle DB中的CLOB类型列中

Xml 我是否可以在不强制转换的情况下将BLOB对象存储到Oracle DB中的CLOB类型列中,xml,oracle,xml-parsing,ibm-mq,messagebroker,Xml,Oracle,Xml Parsing,Ibm Mq,Messagebroker,我正在使用WebSphereMessageBroker,它有一个从队列读取XML消息的消息流。如果消息的类型不符合XML标准,则将其转换为BLOB对象并审核到Oracle数据库 问题是非标准消息没有被审核到d/b中,而是落入了回退队列 通过调查,我了解到在数据库中存储已审核消息的字段是CLOB类型,而消息流正在将非标准消息转换为BLOB类型 我想知道是否可以不铸造或转换 以下是ESQL中的代码,其中非标准消息被转换为BLOB类型: MOVE aonMSG TO "OutputRoot"."BLO

我正在使用WebSphereMessageBroker,它有一个从队列读取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 );

从代理的角度来看,您可以将消息作为BLOB引入,然后稍后将其RCD到XMLNSC,并对非标准消息抛出异常,这样,在输入节点的捕获路径上,您就可以访问实际的输入比特流,从而保证不进行转换或强制转换

上面的代码有点混乱,假设aonMsg是输入树视图的一部分,那么您将获取消息树的UCS-2部分,并将其放入名为BLOB的文件夹中。然后将其转换为具有CCSID 819和队列管理器编码的CHAR而不是blob

如果要从树的任意部分创建BLOB,则需要使用类似于位流的内容对其进行序列化

或者,如果你;唯一的问题是,在转换到Oracle的过程中,您可能会发现需要确保列的类型正确,并且odbc.ini文件设置正确