2016-03-02 9 views
0

Я хочу реализовать шаблон request-reply с использованием Oracle AQ. В основном «запросчик»:Запрос-ответ с Oracle AQ

  1. Запрашивать запрос.
  2. Возьмите идентификатор сообщения, сгенерированный для сообщения запроса.
  3. Отменить ответное сообщение, указав в dequeue optionsкорреляция свойство как идентификатор сообщения исходного сообщения запроса.

Оказывается, что в процедуре DBMS_AQ.ENQUEUE, то MsgID OUT параметр, который возвращает исходный идентификатор сообщения является RAW, в то время как корреляционная свойство вариантов DEQUEUE является VARCHAR2 (128) ,

Каков правильный способ его реализации?

ответ

0

Хотя я боялся просто попытаться преобразовать RAW в VARCHAR2 (в конце концов, если возврат API является RAW, для меня это означает, что байты не обязательно соответствуют строке в конкретном charset), похоже, что это просто вопрос преобразования RAW msgId в VARCHAR2 с использованием TO_CHAR. Любопытно, что это не сработает, если вы попытаетесь использовать UTL_RAW.CAST_TO_VARCHAR.

Я продолжу этот подход, хотя это не делает меня на 100% уверенным.