質問

JMS op top Oracle Advanced Queueingを使用するアプリケーションがあります。メッセージの内容(私の場合はXML)を示すキューテーブルでクエリを実行したいと思います。したがって、「[queue_table]からuser_dataを選択」を行うと、応答として「AQ SYS.AQ $ _JMS_TEXT_MESSAGE」が返されます。

このメッセージの内容を表示できるようにする機能はありますか? 「select FUNCTION(user_data)from [queue_table]」などのようなものですか?

キューイングに関する多数のOracleの記事をGoogleでスキャンしましたが、これは見つかりません。これを行う簡単な方法があると思いますが、見つけられません。

役に立ちましたか?

解決

これにも苦労しました。ここに答えを書きました: http:// rwijk .blogspot.com / 2009/02 / whats-in-my-jms-queue.html

よろしく、 ロブ。

他のヒント

だから、次のようにすべきだと思う:

select queue.user_data.text_vc from [queue_table] queue

ここでの回答は、 user_data.text_lob に保存されているより大きなコンテンツの表示を処理しません。 コンテンツが特定のバイト数(4000?)よりも大きい場合、 text_vc null になり、 text_lob (これはそれ以外の場合は null になります)

サイズに関係なくすべてのデータを表示するには、 nvl

SELECT nvl(q.user_data.text_vc、q.user_data.text_lob)FROM [queue_table] q

しない最初の引数がすでに null と異なる場合、2番目の引数を評価しますが、まだテストしていません。

stuXnetのコメントへの追加:

SELECT nvl(to_clob(q.user_data.text_vc), q.user_data.text_lob) FROM queue_table q; 

to_clobを指定しないと、4000文字を超えるデータに対してORA-22835が取得されます。これは、VARCHAR2のみである最初の引数のスペースを保持するためです。

次のコマンドを試してください:

[queue_table]名からuser_dataを選択します

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top