TRY_PARSE_JSON

TRY_PARSE_JSON

파싱 중에 오류가 발생하면 NULL 값을 반환하는 PARSE_JSON의 특수 버전이에요.

출처: Snowflake SQL Reference - TRY_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로 변환