상세 컨텐츠

본문 제목

[Splunk DB Connect] dbxquery 큰따옴표 처리 안되는 문제

카테고리 없음

by Keunwoo.LEE 2023. 6. 22. 17:40

본문

반응형

Splunk DB Connect를 이용하여 dbxquery를 사용할때 query=" " 안에 큰따옴표("") 이용하는 방법

 

쿼리를 작성하면서 별칭(AS)을 사용할때 공백, 특수문자, 한글등을 사용할때 큰따옴표("")를 이용하게 된다.
이렇게 작성한 쿼리를 Splunk의 dbxquery를 이용하여 쿼리를 전달하면 잘될때도 있고 안될때도 있다.
필자의 경우 AS에 괄호()를 사용할때 ORA-00923 에러를 리턴했고 공백이 있어도 에러를 리턴했다.

 

원인 확인을 위해 패킷 분석을 시도했고 원인은 아래와 같다.

 

원인

  • query=" " 안에 포함되어 있는 큰따옴표("")는 Splunk가 DB로 전달할때 큰따옴표를 제거하고 보내기 때문
  • query=" " 안에 또다른 큰따옴표가 있을 경우 역슬래쉬(\)로 Escape 처리 해줘야 함

 

패킷  분석

1. 에러를 리턴하는 경우

 

- Splunk SPL : "DATA(TEST)" -> 큰따옴표 처리하여 전송했지만 패킷으로 보면 빠져서 전송됨

 

Splunk dbxquery SPL : 큰따옴표 처리안됨

 

 

- 패킷 내용 : 쿼리에 큰따옴표가 제거되어 패킷으로 전송됨

 

Splunk dbxquery packet : 큰따옴표 처리안됨

 

2. 정상으로 작동하는 경우 : 큰따옴표 Escape(\) 처리

 

- Splunk SPL : \"DATA(TEST)\" -> 큰따옴표를 Escape 처리해서 전송하면 정상적으로 처리됨

 

Splunk dbxquery SPL : 큰따옴표 Escape 처리

 

- 패킷 내용 : 쿼리에 큰따옴표가 포함되어 패킷으로 전송됨

 

Splunk dbxquery packet : 큰따옴표 처리됨

 

Splunk를 이용하여 dbxquery를 자주 이용하시는 분들께 도움이 되었기를...

 


 

반응형

댓글 영역