본문 바로가기

2_개발노트

[오라클] 쿼리에서 JSON 파싱하기.

반응형

외부 API 호출에 따른 LOG데이터를 DB에 저장하는경우, JSON 형식으로 그 데이터를 저장하는 경우가 있다.
이때 JSON형식 데이터의 값을 뽑아내는 쿼리이다.

하기와 같은 테이블과 JSON데이터가 있다고 가정하고,  데이터 추출하는 쿼리를 작성한다.

CREATE TABLE JSON_DATA
(
    KEY_VALUE VARCHAR2(10)
  , SEND_DATA VARCHAR2(2000)
);
{"BarcodeNumber":"","PurchaseAmount":"100","StandardProductCode":""}

 

* 추출 쿼리

SELECT JSON_VALUE(A.SEND_DATA, '$.BarcodeNumber') AS BARCODE_NUMBER
     , JSON_VALUE(A.SEND_DATA, '$.PurchaseAmount') AS PURCHASE_AMOUNT
  FROM JSON_DATA A;

 

형식은 간단하다.
JSON_VALUE( 컬럼, '$.추출JSON_KEY' )

 

당연한 얘기지만 JSON KEY가 다를 경우 추출되지 않으며, NULL이 리턴된다.

반응형