오라클 SQL에서 JSON 데이터를 테이블로 변환할 때는 JSON_TABLE 함수를 사용하면 된다. JSON_TABLE 함수를 사용할 때는 JSON 데이터를 직접 입력하여 사용해도 되고, 테이블에 포함된 JSON 칼럼의 데이터를 테이블로 변환할 수도 있다. JSON_TABLE 함수는 오라클 12c 이상에서 사용할 수 있다. 목차JSON_TABLE 기본 사용법JSON_TABLE 테이블 JSON 사용 및 조인 방법JSON_TABLE 옵션 사용법 JSON_TABLE 기본 사용법SELECT jt.empno , jt.ename FROM JSON_TABLE ( '{"EMPNO":7698,"ENAME":"BLAKE"}', '$' COLUMNS ( ..
오라클 SQL에서 JSON 데이터에서 특정 항목의 값을 추출하기 위해서 JSON_VALUE 함수를 사용하면 된다. JSON_VALUE 함수를 사용하여 값을 추출할 때는 루트($)와 배열순번, 키 이름을 지정하면 된다. JSON_VALUE 함수를 사용할 때 반환 값의 데이터 유형을 지정하기 위해서는 RETURNING 옵션을 사용하면 되며, 데이터 추출 중 오류가 발행하거나 값이 비어있을 경우 ON ERROR, ON EMPTY 옵션을 사용하여 처리할 수 있다.JSON_VALUE 함수는 오라클 12c 부터 사용할 수 있다. 목차JSON_VALUE 기본 사용법JSON_VALUE 옵션 사용법 JSON_VALUE 기본 사용법SELECT JSON_VALUE('{"EMPNO":7698,"ENAME":"BLAKE"}',..
오라클 SQL에서 여러 행의 데이터를 KEY, VALUE 형태로 하나의 JSON 객체로 합치기 위해서는 JSON_OBJECTAGG 함수를 사용하면 된다. JSON_OBJECTAGG 함수는 오라클 12c R2 이상에서 사용할 수 있다. JSON_OBJECT( [ { [KEY] key_expr VALUE val_expr } -- JSON 객체의 "키:값" 쌍을 정의 [FORMAT JSON], -- 값(val_expr)이 JSON 형식임을 명시. 유효하지 않은 JSON 형식이면 오류 발생 ... ] [ JSON_on_null_clause ] -- NULL 처리 방식 지정 (NULL ON NULL 또는 ABSENT ON NULL) [ JSON_returni..
오라클 SQL에서 JSON 객체를 만들기 위해서는 JSON_OBJECT 함수를 사용하면 된다. JSON_OBJECT 함수는 키 이름(KEY)과 값(VALUE)의 매핑을 유연하게 설정할 수 있어 단순한 데이터 변환뿐 아니라 복잡한 JSON 객체를 동적으로 생성하는 데에도 유용하게 사용할 수 있다. JSON_OBJECT 함수는 오라클 12c R2 이상에서 사용할 수 있다. JSON_OBJECT( [ { [KEY] key_expr VALUE val_expr -- JSON 객체의 "키:값" 쌍 지정 | expr [ ":" expr ] -- "키:값"을 표현식으로 생성 } [FORMAT JSON], ..
오라클 SQL에서 여러 행의 데이터를 하나의 배열로 반환하기 위해서는 JSON_ARRAYAGG 함수를 사용하면 된다. JSON_ARRAYAGG 함수는 ORDER BY를 사용하여 배열 요소를 정렬할 수 있으며, CLOB 형식으로 반환할 수 있기 때문에 대용량의 데이터를 하나의 문자열로 합쳐서 반환할 때도 사용할 수 있다. JSON_ARRAYAGG 함수는 오라클 12c R2부터 사용할 수 있다. JSON_ARRAYAGG( expr [FORMAT JSON] -- 배열에 포함할 열이나 표현식 (JSON 데이터라면 FORMAT JSON 사용) [ORDER BY column [ASC | DESC]] -- 배열 요소를 정렬 (기본적으로 순서가 보장되지 않음) [NULL ON NULL | ABSENT..
오라클 SQL에서 JSON 데이터를 배열로 반환하기 위해서는 JSON_ARRAY 함수를 사용하면 된다. JSON_ARRAY 함수는 오라클 12c R2 이상에서 사용할 수 있다. JSON_ARRAY 함수는 입력된 데이터를 단순 배열로 반환하는 함수라고 생각하면 되며, 각 데이터별로 옵션을 사용하여 NULL 또는 JSON 형식을 체크할 수 있다. JSON_ARRAY( expr [FORMAT JSON], -- JSON 배열에 포함할 값 (JSON 형식인지 지정 가능) expr [FORMAT JSON], -- 추가 값 (콤마로 구분) ... [JSON_on_null_clause] -- NULL 처리 옵션 (NULL ON NULL | ABSENT ON NULL) [J..
오라클 SQL에서 SYSDATE 함수를 사용하여 현재 날짜와 시간을 조회할 수 있다. 그러나 시간을 제외한 날짜만 필요할 때가 있는데, 이럴 때는 TRUNC 함수를 사용하여 시간을 절사 하는 방법과, TO_CHAR 함수를 사용하여 날짜 형식을 문자열로 변환하는 방법이 있다. 상황에 따라서 2가지 방법을 적절히 사용하면 된다. SELECT SYSDATE , TRUNC(SYSDATE) , TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM dual TRUNC(SYSDATE) :TRUNC 함수를 사용하면 날짜 형식에서 시간을 버리고 날짜만 반환한다.반환된 값이 SYSDATE와 동일한 날짜 형식이기 때문에 날짜 형식을 사용해야 할 경우 유용하게 사용할 수 있다. 아래와 같이 WHE..
오라클 SQL에서 근삿값(가장 가까운 값)을 찾기 위해서는 ROW_NUMBER 함수와 RANK 함수를 사용하면 된다. ROW_NUMBER 함수는 결과 집합에 고유한 번호를 매기기 때문에 데이터가 1건만 조회가 되고, RANK 함수는 동일한 값이 있을 경우 같은 순위를 부여하기 때문에 중복된 데이터가 있을 경우 모두 조회가 된다. 위의 두 개의 함수를 사용하여 특정 기준 값과 가장 가까운 값을 찾는데 아주 유용하게 사용할 수 있다. 목차ROW_NUMBER 함수를 사용하여 근삿값 찾기RANK 함수를 사용하여 근삿값 찾기 ROW_NUMBER 함수를 사용하여 근삿값 찾기SELECT * FROM ( SELECT empno , ename , sal ..
오라클 SQL에서 날짜 형식에서 시간을 추출하기 위해서는 TO_CHAR 함수와 EXTRACT 함수를 사용하면 된다. TO_CHAR 함수는 시간 값을 문자열로 반환하며, EXTRACT 함수는 숫자 값으로 반환한다. TO_CHAR 함수를 조금 더 많이 사용하는 편이지만, 두 함수의 특성이 조금 다르기 때문에 상황에 따라서 필요한 함수를 사용하면 된다. 목차날짜에서 시간을 추출하는 방법TO_CHAR 함수를 사용하여 시간을 추출하는 방법EXTRACT 함수를 사용하여 시간을 추출하는 방법TO_CHAR 함수와 EXTRACT 함수의 반환값 비교 날짜에서 시간을 추출하는 방법SELECT SYSDATE , TO_CHAR(SYSDATE, 'HH24') AS to_char_hou..
오라클 SQL에서 초(second)를 분으로, 초를 시간으로, 초를 일로 변환하기 위해서는 기본 적인 산술연산을 사용하면 된다. 아래의 예제 쿼리문을 참고하면 쉽게 이해할 수 있을 것이다. SELECT 86400 AS seconds --초 , FLOOR(86400 / 60) AS minutes --분 , FLOOR(86400 / (60*60)) AS hours --시간 , FLOOR(86400 / (24*60*60)) AS days --일 FROM dual 초를 분으로 변환 ( FLOOR(86400 / 60) ) :1분은 60초이므로 초를 60으로 나누면 분으로 변환된다. 초를 시간으로 변환 ( FLOOR(86400..