是否可以在传播时指定远程数据库中的转换?

Is it possible to specify transformation in remote database upon propagation?

F.e。在一个数据库中,我有有效载荷类型(varchar2,数字)。在传播时我添加了转换,指定此有效负载需要转换为 sys.xmlType,因为我在数据库之间有不同的 nls_length_semantics,我不能简单地传播这些对象类型。到目前为止一切顺利,我已经尝试过并且传播成功。我想要实现的是,sys.xmlType 有效负载在远程数据库中排队时转换为 type(varchar2, number)。可能吗?

总而言之,它看起来像这样:

  1. 将消息排队到本地队列;

  2. 传播开始;

  3. Payload从对象类型转换为sys.xmlType;

  4. 消息正在排队到远程数据库;

  5. Payload从sys.xmlType转换为objectType;

  6. 消息已排队。

Oracle 文档说:

A transformation can be specified during enqueue, to transform the message to the correct type before inserting it into the queue. It can be specified during dequeue to receive the message in the desired format. If specified with a remote subscriber, the message will be transformed before propagating it to the destination queue.

所以在远程数据库中实现转换的唯一方法似乎是在远程数据库中创建临时 aq table,在该远程 aq 中启动传播,并在传播时指定转换。