首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AQ在不同NLS_LENGTH_SEMANTICS数据库之间的传播

AQ在不同NLS_LENGTH_SEMANTICS数据库之间的传播
EN

Stack Overflow用户
提问于 2016-08-31 14:49:54
回答 1查看 224关注 0票数 0

是否有可能在具有不同NLS_LENGTH_SEMANTICS的两个数据库之间传播AQ消息,即本地数据库具有字节(nls_database_parameters视图)和远程数据库具有CHAR(nls_database_parameters视图),如果是,那么如何传播?我已经尝试过将会话NLS_LENGTH_SEMANTICS参数值设置为BYTE,然后重新创建远程数据库AQ OBJECT_TYPE,用字节重写对象类型属性声明,在本地数据库中创建OID类型,并在传播中使用转换,但是它没有成功,仍然是

"ORA-25215: user_data类型和队列类型不匹配“

在传播时。

这是我在AQ表中使用的对象类型:

代码语言:javascript
复制
create or replace type obj_sepa_msg as object
(
  client    varchar2(50),
  cartridge varchar2(20),
  iban      varchar2(34),
  file_name varchar2(4000),
  data      clob
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-09 08:41:40

可以在具有不同NLS_LENGTH_SEMANTICS的数据库之间传播,但只有系统变量的有效载荷,如sys.xmltypesys.number。但是,如果使用的是11.2.0.3或更低版本的数据库,则不能将它们放入object type中。如果您需要对象类型,您可以这样做。当传播到远程数据库时,将转换添加到订阅服务器,以便在传播之前将object type转换为sys.xmltype,请注意,仍然需要指定有效负载为sys.xmltype。然后,在远程数据库中查询消息时,可以在dbms_aq.message_properties_t type中指定转换,将sys.xmltype转换为所需的有效负载。

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

https://stackoverflow.com/questions/39252825

复制
相关文章

相似问题

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