2015-07-01 54 views
0

我有下面的代碼是從AQDequeinf XMLTYPE消息拋出錯誤

DECLARE 
    dequeue_options  dbms_aq.dequeue_options_t; 
    message_properties dbms_aq.message_properties_t; 
    message_handle  RAW(16); 
    message    SYS.XMLTYPE; 

    BEGIN 
     DBMS_AQ.DEQUEUE(queue_name => 'my_demo_queue', 
     dequeue_options => dequeue_options, 
     message_properties => message_properties, 
     payload   => message, 
     msgid    => message_handle); 

    DBMS_OUTPUT.PUT_LINE ('Message: ' || message); 
    COMMIT; 
END; 

出隊的數據執行它給我下面的錯誤後 -

錯誤報告 - ORA-06550:行14 ,列30: PLS-00306:調用'||'時參數的數量或類型錯誤 ORA-06550:第14行,第8列: PL/SQL:忽略語句 06550. 00000 - 「行%s,列%s:\ n%s」 *原因:通常是PL/SQL編譯錯誤。 *行動:

我已經使用上述塊爲不同的有效載荷類型,它工作正常,但是當我使用XMLTYPE作爲有效載荷時,我得到這個問題。我使用XMLTYPE有效載荷而不使用DBMS_OUTPUT.PUT_LINE('Message:'|| message);它的工作完美。

我在哪裏犯錯?

回答

2
DBMS_OUTPUT.PUT_LINE ('Message: ' || message.getClobVal()); 
or 
DBMS_OUTPUT.PUT_LINE ('Message: ' || message.getStringVal()); 
相關問題