본문 바로가기

[오라클 레퍼런스 함수] JSON_ARRAYAGG - JSON 배열 생성

by ㅇㅍㅍ 2023. 8. 7.
[오라클 레퍼런스 함수] JSON_ARRAYAGG - JSON 배열 생성
728x90

 

JSON_ARRAYAGG

 

구문

JSON_ARRAYAGG
  ( expr [ FORMAT JSON ] [ order_by_clause ]
    [ JSON_on_null_clause ] [ JSON_agg_returning_clause ]
    [ STRICT ] )

 

목적

SQL/JSON 함수인 JSON_ARRAYAGG는 집계 함수입니다. 이 함수는 SQL 표현식의 열을 입력으로 받아서 각 표현식을 JSON 값으로 변환하고 이러한 JSON 값을 담고 있는 단일한 JSON 배열을 반환합니다.

 

expr

expr에는 JSON 객체, JSON 배열, 숫자 리터럴, 텍스트 리터럴 또는 null을 평가하는 어떤 SQL 표현식도 지정할 수 있습니다. 이 함수는 숫자 리터럴을 JSON 숫자 값으로, 텍스트 리터럴을 JSON 문자열 값으로 변환합니다.

 

FORMAT JSON

옵션인 이 절은 입력 문자열이 JSON임을 나타내어 출력에서 따옴표로 묶이지 않도록 합니다.

 

order_by_clause

이 절은 문장에 의해 반환된 JSON 배열 내의 JSON 값들을 정렬할 수 있게 합니다. 이 절의 전체 의미에 대해서는 SELECT의 문서에서 order_by_clause를 참조하세요.

 

JSON_on_null_clause

이 절은 expr이 null로 평가될 때 이 함수의 동작을 지정하는 데 사용됩니다.

  • NULL ON NULL - 이 절을 지정하면 함수는 JSON null 값을 반환합니다.
  • ABSENT ON NULL - 이 절을 지정하면 함수는 JSON 배열에서 해당 값을 제외합니다. 이것이 기본값입니다.

 

JSON_agg_returning_clause

이 절을 사용하여 이 함수가 반환하는 문자열 데이터의 데이터 유형을 지정할 수 있습니다. 다음과 같은 데이터 유형을 지정할 수 있습니다:

  • VARCHAR2[(size [BYTE,CHAR])]
    SQL의 다른 곳에서 VARCHAR2 데이터 유형을 지정할 때 크기를 반드시 지정해야 합니다. 그러나 이 절에서는 크기를 생략할 수 있습니다.
  • CLOB

 

이 절을 생략하거나 VARCHAR2를 지정하지만 size 값을 생략하면 JSON_ARRAYAGGVARCHAR2(4000) 유형의 문자열을 반환합니다.

"Data Types"을 참조하여 위의 데이터 유형에 대한 자세한 정보를 확인하세요.

 

STRICT

STRICT 절을 지정하여 JSON 생성 함수의 출력이 올바른 JSON인지 확인할 수 있습니다. 확인에 실패하면 구문 오류가 발생합니다.

예제는 JSON_OBJECT를 참조하세요.

 

WITH UNIQUE KEYS

WITH UNIQUE KEYS를 지정하여 생성된 JSON 객체가 고유한 키를 가지도록 보장할 수 있습니다.

 

예시

다음 문장은 ID 번호를 포함하는 id_table이라는 테이블을 생성합니다:

CREATE TABLE id_table (id NUMBER);
INSERT INTO id_table VALUES(624);
INSERT INTO id_table VALUES(null);
INSERT INTO id_table VALUES(925);
INSERT INTO id_table VALUES(585);

 

다음 예제는 테이블 id_table의 ID 번호들로부터 JSON 배열을 구성합니다:

SELECT JSON_ARRAYAGG(id ORDER BY id RETURNING VARCHAR2(100)) ID_NUMBERS
  FROM id_table;

ID_NUMBERS
-------------
[585,624,925]

 


출처: 오라클 레퍼런스

원문 링크: Oracle JSON_ARRAYAGG 함수 문서

 

반응형

댓글