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_ARRAYAGG는 VARCHAR2(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 함수 문서
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] JSON_MERGEPATCH - JSON 문서 병합하여 수정 (0) | 2023.08.07 |
---|---|
[오라클 레퍼런스 함수] JSON_DATAGUIDE - JSON 데이터 가이드 반환 (0) | 2023.08.07 |
[오라클 레퍼런스 함수] JSON_ARRAY - JSON 배열 생성 (0) | 2023.08.07 |
[오라클 레퍼런스 함수] ITERATION_NUMBER - ITERATE(n)인 경우 n-1을 반환 (0) | 2023.08.06 |
[오라클 레퍼런스 함수] INSTR - 문자열에서 부분 문자열 위치 반환 (0) | 2023.08.06 |
댓글