Dequeinf XMLTYPE消息抛出错误

时间:2015-07-01 12:27:22

标签: oracle plsql xmltype ora-06550 advanced-queuing

我有以下代码用于从AQ中取样数据

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作为有效负载时,我遇到了这个问题。

我在没有使用DBMS_OUTPUT.PUT_LINE('Message:'|| message)的情况下尝试了上面的XMLTYPE有效负载块;它运作得很好。

我犯错的地方?

1 个答案:

答案 0 :(得分:2)

DBMS_OUTPUT.PUT_LINE ('Message: ' || message.getClobVal() ); 
or
DBMS_OUTPUT.PUT_LINE ('Message: ' || message.getStringVal() );