본문 바로가기

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

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

 

JSON_ARRAY

 

구문

JSON_ARRAY ( JSON_ARRAY_content ) | JSON [ JSON_ARRAY_content ]

 

목적

SQL/JSON 함수인 JSON_ARRAY는 SQL 스칼라 표현식의 시퀀스 또는 하나의 컬렉션 타입 인스턴스(VARRAY 또는 NESTED TABLE)를 입력으로 받습니다.

이 함수는 각 표현식을 JSON 값으로 변환하고, 해당 JSON 값들을 포함하는 JSON 배열을 반환합니다.

만약 ADT(추상 데이터 타입)가 컬렉션을 포함하고 있다면, 타입 매핑은 해당 컬렉션 멤버에 대해 중첩된 JSON 배열을 포함하는 JSON 객체를 생성합니다.

또한, 컬렉션이 ADT 인스턴스를 포함하고 있는 경우, 타입 매핑은 JSON 객체의 JSON 배열을 생성합니다.

 

JSON_ARRAY_content

이 절은 JSON_ARRAY 함수의 입력을 정의하는 데 사용됩니다.

 

JSON_ARRAY_element

  • expr
    expr에는 JSON 객체, JSON 배열, 숫자 리터럴, 텍스트 리터럴, 날짜, 타임스탬프 또는 null로 평가되는 어떤 SQL 표현식도 지정할 수 있습니다. 이 함수는 숫자 리터럴을 JSON 숫자 값으로, 텍스트 리터럴을 JSON 문자열 값으로 변환합니다. 날짜와 타임스탬프 데이터 타입은 ISO 8601 날짜 형식을 따라 JSON 객체 또는 배열에 JSON 문자열로 출력됩니다.
  • format_clause
    FORMAT을 지정하여 입력 문자열이 JSON임을 나타낼 수 있으며, 따라서 출력에 따옴표가 붙지 않습니다.

 

JSON_on_null_clause

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

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

 

JSON_returning_clause

이 절은 반환값의 유형을 지정하는 데 사용됩니다. 다음 중 하나를 선택합니다:

  • VARCHAR2: 바이트 또는 문자 수로 크기를 지정합니다. 기본값은 바이트입니다. 이 절을 생략하거나 size 값을 지정하지 않고 지정하는 경우, JSON_ARRAYVARCHAR2(4000) 유형의 문자열을 반환합니다. 자세한 내용은 VARCHAR2 Data Type을 참조하세요. SQL의 다른 곳에서 VARCHAR2 데이터 유형을 지정할 때는 크기를 지정해야 합니다. 하지만 JSON_returning_clause에서는 크기를 생략할 수 있습니다.
  • CLOB: 단일 바이트 또는 다중 바이트 문자를 포함하는 문자 큰 객체를 반환합니다.
  • BLOB: AL32UTF8 문자 집합의 이진 큰 객체를 반환합니다.

 

STRICT

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

예제는 JSON_OBJECT를 참조하세요.

 

예시

다음 예제에서는 JSON 객체, JSON 배열, 숫자 리터럴, 텍스트 리터럴 및 null로부터 JSON 배열을 구성합니다.

SELECT JSON_ARRAY (     
    JSON_OBJECT('percentage' VALUE .50),
    JSON_ARRAY(1,2,3),
    100,
    'California',
    null
    NULL ON NULL
    ) "JSON Array Example"
  FROM DUAL;
 
JSON Array Example
--------------------------------------------------------------------------------
[{"percentage":0.5},[1,2,3],100,"California",null]

 


출처: 오라클 레퍼런스

원문 링크: Oracle JSON_ARRAY 함수 문서

 

반응형

댓글