我們有一個Oracle 12c AQ,其UDT有效內容包含一個XMLType屬性。我們可以創建一個通知程序,當XMLType屬性匹配某些條件時觸發?如何使用Oracle高級通知XML更改
我還沒有看到這個在線任何例子。
edit => 只有在負載的xml部分符合某些條件的情況下才會收到有關新消息的通知。例如:
DECLARE subscriber sys.aq$_agent;
begin
subscriber := sys.aq$_agent('SUBSCRIBER_1', null, NULL);
DBMS_AQADM.ADD_SUBSCRIBER(Queue_name => 'MYUSER.MY_LOVELY_Q'
, Subscriber => subscriber
, Rule => 'tab.user_data.myXMLAttr <matches some criteria>');
end;
該訂戶只有在有效負載的XML部分符合條件時纔會收到通知。 < =結束編輯
非常感謝爲我創建這個例子的努力。我正在尋找下一個步驟。只有在有效負載的xml部分符合某些條件的情況下才會收到有關新消息的通知。例如: DECLARE subscriber sys.aq $ _agent; begin subscriber:= sys.aq $ _agent('SUBSCRIBER_1',null,NULL); DBMS_AQADM.ADD_SUBSCRIBER(Queue_name =>'MYUSER.MY_LOVELY_Q',Subscriber => subscriber,Rule =>'tab.user_data.myXMLAttr'); 結束; 只有在有效負載的XML部分符合標準時纔會收到通知。 –
shindigo
瞭解,你可以做到這一點。 'ADD_SUBSCRIBER(... rule => 'tab.user_data.myXMLAttr.extract(''/ x_paTH TO ELEMENT'')。getStringVal()=''sOMETHING''')'' –