2015-07-01 30 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());