본문 바로가기

[오라클 레퍼런스 함수] JSON_TRANSFORM - JSON 문서 내용 변경

by ㅇㅍㅍ 2023. 8. 8.
[오라클 레퍼런스 함수] JSON_TRANSFORM - JSON 문서 내용 변경
728x90

 

 

 

JSON_TRANSFORM

 

구문

JSON_TRANSFORM
  ( input_expr , operation [ , operation ]... [ JSON_TRANSFORM_returning_clause ]
  [ JSON_passing_clause ] )
  

JSON_TRANSFORM_returning_clause::=

RETURNING ( 
     VARCHAR2 [ ( size [BYTE | CHAR] ) ]
     | CLOB
     | BLOB
     )
   [ (ALLOW | DISALLOW) ]

 

JSON_passing_clause::=

PASSING expr AS identifier [, expr AS identifier ]...

JSON_passing_clause에 대한 자세한 내용은 "JSON_EXISTS Condition"을(를) 참조하십시오.

 

operation ::=

     removeOp
     | insertOp
     | replaceOp 
     | appendOp
     | setOp
     | renameOp
     | keepOp

 

removeOp ::=

REMOVE pathExpr [ (IGNORE | ERROR) ON MISSING ] 

 

insertOp ::=

INSERT pathExpr = rhsExpr [ ( REPLACE | IGNORE | ERROR) ON EXISTING ]
     [ ( NULL | IGNORE | ERROR | REMOVE ) ON NULL ]

 

replaceOp ::=

REPLACE pathExpr = rhsExpr [ ( CREATE | IGNORE | ERROR) ON MISSING ]
    [ ( NULL | IGNORE | ERROR | REMOVE ) ON NULL ]

 

rhsExpr ::=

sqlExpr [ FORMAT JSON ]

 

appendOp ::=

APPEND pathExpr = rhsExpr [ ( CREATE | IGNORE | ERROR) ON MISSING ]
    [ ( NULL | IGNORE | ERROR) ON NULL ] 

 

setOp ::=

SET pathExpr = rhsExpr [ (IGNORE | ERROR | REPLACE) ON EXISTING ]
    [ ( CREATE | IGNORE | ERROR) ON MISSING ] [ ( NULL | IGNORE | ERROR) ON NULL ]

 

renameOp ::=

RENAME pathExpr WITH stringLiteral [ (IGNORE | ERROR) ON MISSING ]

 

keepOp ::=

  KEEP ( pathExpr [( IGNORE | ERROR ) ON MISSING ] ) ... 

 

목적

JSON_TRANSFORM를 사용하여 함수에 입력되는 JSON 문서를 수정할 수 있습니다. 하나 이상의 수정 작업을 지정하여 JSON 데이터에 변경 사항을 수행하여 JSON 문서(또는 JSON 문서의 일부)를 변경할 수 있습니다. 변경된 JSON 문서가 출력으로 반환됩니다.

JSON 데이터를 지원하는 모든 SQL 데이터 유형을 입력으로 사용할 수 있습니다. 예를 들어 입력은 IS JSON 체크 제약 조건이 있는지 여부에 상관없이 VARCHAR2 컬럼이나 JSON 데이터를 반환하는 함수 호출 등이 될 수 있습니다.

 

예제

예제 1: 타임스탬프로 JSON 컬럼 업데이트하기

UPDATE t SET jcol = JSON_TRANSFORM(jcol, SET '$.lastUpdated' = SYSTIMESTAMP)

 

예제 2: 고객에게 JSON을 전송하기 전에 주민등록번호 제거하기

SELECT JSON_TRANSFORM (jcol, REMOVE '$.ssn') FROM t WHERE …

 

JSON_TRANSFORM_returning_clause

기본 출력(output) 데이터 유형은 입력(input) 데이터 유형과 일치합니다.

입력 데이터 유형이 VARCHAR2이고 크기가 어떤 경우든, 기본 출력 데이터 유형은 VARCHAR2(4000)입니다.

 

JSON_TRANSFORM에 대한 더 자세한 설명과 예제는 Oracle SQL Function JSON_TRANSFORM을 참조하세요.

 


출처: 오라클 레퍼런스

원문 링크: Oracle JSON_TRANSFORM 함수 문서

 

반응형

댓글