首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以将BLOB对象存储到Oracle DB中的CLOB类型列中,而无需强制转换

是否可以将BLOB对象存储到Oracle DB中的CLOB类型列中,而无需强制转换
EN

Stack Overflow用户
提问于 2014-04-30 19:39:59
回答 1查看 728关注 0票数 0

我使用的是XML Broker,它有一个从队列读取WebSphere消息的消息流。如果消息是非标准类型(不符合XML标准),则将其转换为BLOB对象并审计到Oracle数据库。

问题是,非标准消息而不是被审计到d/b中的消息正在落入回退队列。

通过调查,我了解到数据库中存储审计消息的字段是CLOB类型,而消息流将非标准消息转换为BLOB类型。

我想知道有没有可能不需要投射或者转化..

下面是将非标准消息转换为BLOB类型的代码(在ESQL中):

代码语言:javascript
复制
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 );
EN

回答 1

Stack Overflow用户

发布于 2014-05-01 00:54:15

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

上面的代码有点令人困惑,假设aonMsg是输入树的一部分,那么您将获取消息树的UCS-2部分,并将其放入名为BLOB的文件夹中。然后使用CCSID819和队列管理器编码将其转换为CHAR (而不是blob)。

如果你想从树的任意部分创建一个BLOB,你需要使用类似于"AS BITSTREAM“的东西来序列化它。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23387125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档