0

我想使用 Oracle AQ实现请求-回复模式。基本上,“请求者”会:

  1. 将请求消息排入队列。
  2. 获取为请求消息生成的消息 ID。
  3. 将回复消息出列,在出列选项中将相关属性指定为原始请求消息的消息 ID。

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

实现它的正确方法是什么?

4

1 回答 1

0

虽然我害怕简单地尝试将 RAW 转换为 VARCHAR2(毕竟,如果 API 的返回是 RAW,对我来说,这意味着字节不一定对应于特定字符集中的字符串),它似乎只是使用 TO_CHAR 将 RAW msgId 转换为 VARCHAR2 的问题。奇怪的是,如果您尝试使用 UTL_RAW.CAST_TO_VARCHAR,它就不起作用。

我将继续采用这种方法,尽管它不会让我 100% 有信心。

于 2016-03-04T12:37:38.623 回答