0

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 ペイロードで上記のブロックを試しました。そしてそれは完璧に機能しました。

どこで間違いを犯していますか?

4

1 に答える 1