TRY_PARSE_JSON
TRY_PARSE_JSON
파싱 중에 오류가 발생하면 NULL 값을 반환하는 PARSE_JSON의 특수 버전이에요.
본문
구문
TRY_PARSE_JSON( expr [ , parameter ] )
인자
필수:
expr
유효한 JSON 정보를 담고 있는 문자열 타입(예: VARCHAR)의 표현식이에요.
선택:
parameter
일치 항목을 검색하는 데 사용되는 파라미터를 지정하는 문자열 상수예요. 지원되는 값:
| Parameter | Description |
|---|---|
d |
JSON 객체에서 중복 키를 허용해요. JSON 객체에 중복 키가 포함되어 있으면 반환되는 객체는 그 키의 인스턴스가 하나뿐이며 해당 키에 마지막으로 지정된 값을 가져요. |
s |
JSON 객체에서 중복 키를 허용하지 않아요(엄격). 이 값이 기본값이에요. |
반환 값
JSON 문서를 포함한 VARIANT 타입의 값을 반환해요.
입력이 NULL이거나 파싱 중 오류가 발생하면 함수는 NULL을 반환해요.
이 함수는 정형(structured) 타입을 반환하지 않아요.
사용 시 유의사항
사용 시 유의사항은 PARSE_JSON을 참고하세요.
예시
이 예시는 JSON으로 파싱할 수 있는 값을 포함한 문자열을 TRY_PARSE_JSON을 호출해 파싱하여, 다양한 유형의 데이터를 VARIANT 컬럼에 저장하는 예시를 보여줘요:
테이블을 만들고 채워요:
CREATE OR REPLACE TEMPORARY TABLE vartab (ID INTEGER, v VARCHAR);
INSERT INTO vartab (id, v) VALUES
(1, [-1, 12, 289, 2188, FALSE,]),
(2, { x : abc, y : FALSE, z: 10} ),
(3, { bad : json, missing : TRUE, close_brace: 10 );
TRY_PARSE_JSON을 사용해 데이터를 쿼리해요. 세 번째 줄의 값이 NULL인 것에 주목하세요. 쿼리가 TRY_PARSE_JSON 대신 PARSE_JSON을 사용했다면 실패했을 거예요.
SELECT ID, TRY_PARSE_JSON(v)
FROM vartab
ORDER BY ID;
+----+-------------------+
| ID | TRY_PARSE_JSON(V) |
|----+-------------------|
| 1 | [ |
| | -1, |
| | 12, |
| | 289, |
| | 2188, |
| | false, |
| | undefined |
| | ] |
| 2 | { |
| | x: abc, |
| | y: false, |
| | z: 10 |
| | } |
| 3 | NULL |
+----+-------------------+
더 많은 예시는 PARSE_JSON을 참고하세요.
더 알아보기 (Learn more)
- PARSE_JSON — 문자열을 JSON VARIANT로 변환