Oracle AQ SYS의 내용을 표시합니다.AQ$_JMS_TEXT_MESSAGE
오라클 고급 큐잉의 JMS optop을 사용하는 어플리케이션이 있습니다.메시지의 내용을 보여주는 큐 테이블에 대한 쿼리를 수행하고 싶습니다(제 경우에는 XML입니다).그래서 '[queue_table]에서 user_data 선택'을 할 때전 'AQ SYS'를 받습니다.응답으로 'AQ$_JMS_TEXT_MESSAGE'를 선택합니다.
이 메시지의 내용을 보여줄 수 있는 기능이 있습니까?[queue_table]에서 기능(user_data)을 선택하세요' 같은 것?
구글에서 큐잉에 관한 수많은 오라클 기사를 검색했지만 찾을 수가 없습니다.간단한 방법이 있는 것 같은데 찾을 수가 없네요.
이것도 고생했어요.저는 여기에 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
그렇지 않은 경우)
크기에 관계없이 모든 데이터를 표시하려면 다음과 같은 쿼리를 사용할 수 있습니다.
SELECT nvl(q.user_data.text_vc, q.user_data.text_lob) FROM [queue_table] q
사용할 수도 있고 고려해야 할 것 같습니다.nvl
, 그것은 두번째 주장을 평가하지 않기 때문에, 만약 첫번째 주장이 이미 다른 경우에null
, 아직 테스트 안 해봤어요
stuXnet의 코멘트에 추가:
SELECT nvl(to_clob(q.user_data.text_vc), q.user_data.text_lob) FROM queue_table q;
to_clob이 없으면 VARCHAR2만인 첫 번째 인수의 공간을 보존하므로 4000자보다 큰 데이터에 대해 ORA-22835를 얻을 수 있습니다.
다음 명령을 시도해 보십시오.
[ queue_table] name에서 user_data 선택
언급URL : https://stackoverflow.com/questions/1020165/display-contents-of-oracle-aq-sys-aq-jms-text-message
'programing' 카테고리의 다른 글
도커 컨테이너가 과도하게 작동하지 않는 것에 대해 우려해야 합니까? (0) | 2023.10.24 |
---|---|
Matplotlib의 하위 그림에서 행 및 열 머리글 (0) | 2023.10.24 |
JSON 경로-값 쌍에서 보는 MariaDB 레코드를 반환하려면 어떻게 해야 합니까? (0) | 2023.10.24 |
MySQL SERVER 8.0에서 Password 기능이 작동하지 않음 (0) | 2023.10.24 |
mysql_real_escape_string()이 SQL 주입으로부터 완전히 보호됩니까? (0) | 2023.10.24 |