2016-03-02 53 views
0

我想使用Oracle AQ实施request-reply模式。基本上“请求者”会:Oracle AQ请求 - 答复

  1. 排队请求消息。
  2. 取出为请求消息生成的消息ID。
  3. 离开回复消息,在dequeue options中指定关联属性作为原始请求消息的消息ID。

事实证明,所述的DBMS_AQ.ENQUEUE过程中,其返回原始消息ID的MSGID OUT参数是RAW,而该出队选项的相关属性是VARCHAR2(128)

什么是正确的方式来实现呢?

回答

0

尽管我害怕简单地尝试将RAW转换为VARCHAR2(毕竟,如果API的返回值是RAW,对我而言,这意味着字节不一定对应于特定于某个字符串charset),它似乎只是使用TO_CHAR将RAW msgId转换为VARCHAR2的问题。奇怪的是,如果您尝试使用UTL_RAW.CAST_TO_VARCHAR,则它不起作用。

我会继续这种做法,虽然它不会让我100%自信。