2016-03-02 57 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%自信。