【问题标题】:Dequeinf XMLTYPE message throws errorDequeinf XMLTYPE 消息抛出错误
【发布时间】:2015-07-01 12:27:22
【问题描述】:

我有以下代码用于从 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 有效负载的块;而且效果很好。

我在哪里犯错了?

【问题讨论】:

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


    【解决方案1】:
    DBMS_OUTPUT.PUT_LINE ('Message: ' || message.getClobVal() ); 
    or
    DBMS_OUTPUT.PUT_LINE ('Message: ' || message.getStringVal() );  
    

    【讨论】:

      猜你喜欢
      • 2017-11-26
      • 1970-01-01
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      • 2017-11-23
      • 2019-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多