Afficher le contenu de Oracle AQ SYS.AQ $ _JMS_TEXT_MESSAGE
J'ai une application qui utilise JMS op sommet de l'Oracle de files d'attente avancé. Je voudrais faire une requête sur la file d'attente tableau qui montre le contenu du message (qui dans mon cas est le XML). Alors, quand je fais un "select user_data de [queue_table]" je reçois " AQ SYS.AQ$_JMS_TEXT_MESSAGE " comme une réponse.
Est-il une fonction de sorte que le contenu de ce message peut être affiché sur l'écran? Quelque chose comme "sélectionner la FONCTION(user_data) à partir de [queue_table]" ou quelque chose?
J'ai googlé, balayé de nombreuses Oracle des articles sur les files d'attente, mais je ne trouve pas cette chose. Je soupçonne qu'il ya un moyen simple de faire cela, mais je ne la trouve pas.
source d'informationauteur Bruno Ranschaert
Vous devez vous connecter pour publier un commentaire.
J'ai eu du mal avec celui-ci. J'ai écrit une réponse ici: http://rwijk.blogspot.com/2009/02/whats-in-my-jms-queue.html .
Ce qui concerne,
Rob.
Donc je suppose qu'il devrait être:
Les réponses ici ne gère pas l'affichage de contenu plus large, stockées dans
user_data.text_lob
.Si le contenu est plus grand qu'une certaine quantité d'octets (4000?),
text_vc
seranull
et vous avez à regardertext_lob
(ce qui seraitnull
contraire)Afin d'afficher toutes les données, quelle que soit sa taille, vous pouvez utiliser la requête suivante à l'aide
nvl
:SELECT nvl(q.user_data.text_vc, q.user_data.text_lob) FROM [queue_table] q
Je suppose que vous pouvez (et devriez considérer l') utilisation
fusionner
au lieu denvl
parce qu'il ne pas évaluer le second argumentsi le premier est déjà différentenull
mais je n'ai pas testé encore.Outre le commentaire de stuXnet:
sans to_clob vous obtiendrez ORA-22835 de données de plus de 4000 caractères, car elle préserve l'espace du premier argument, qui est seulement VARCHAR2.
S'il vous plaît essayez la commande suivante:
sélectionnez user_data de [queue_table] nom