오라클 SQL을 사용하다 보면 실수로 데이터를 삭제하거나 잘못 수정하는 경우가 생긴다. 이럴 때 UNDO 정보가 보존되어 있다면, 과거 시점의 데이터를 복구할 수 있는 기능이 바로 플래시백(Flashback)이다. AS OF TIMESTAMP 구문을 사용하여 과거 특정 시점의 데이터 상태를 조회하거나, 테이블 전체를 지정한 시점으로 롤백할 수 있다. 오라클은 UNDO 정보를 무한히 저장하지 않으며, UNDO 테이블스페이스의 크기와 시스템의 데이터 변경량에 따라 복구 가능한 시점이 달라질 수 있다. 목차플래시백 쿼리(Flashback Query) 특정 시점 데이터 복구플래시백 테이블(Flashback Table) 특정 시점 테이블 전체 복구 플래시백 쿼리(Flashback Query) 특정 시점 데이터 복..
오라클 SQL에서 시퀀스를 사용할 때는 일반적으로 NEXTVAL과 CURRVAL을 통해 값을 증가시키고 조회한다. NEXTVAL은 시퀀스 값을 증가시키고 그 값을 반환하며, CURRVAL은 현재 세션에서 마지막으로 호출된 NEXTVAL의 결과를 그대로 조회하는 역활을 한다. 시퀀스 현재값 조회 방법SELECT emp_seq.CURRVAL FROM dual 시퀀스 이름이 emp_seq이고 emp_seq.CURRVAL을 사용하여 현재 시퀀스 값을 확인할 수 있다. 현재 세션에서 가장 최근에 생성한 값(즉, 마지막으로 emp_seq.NEXTVAL을 호출한 값)을 확인하는 명령이다. CURRVAL은 계속 조회를 해도 시퀀스 값이 변경되지 않는다.CURRVAL은 세션 내에서 NEXTVAL이 한 번이라도 이 호..
오라클 SQL에서는 날짜 데이터에 대해 시간 간격을 더하거나 빼는 연산이 자주 필요하다. 이때 가장 기본적인 방법은 +, - 연산자를 사용하여 값을 더하거나 빼는 방식이며, 또 다른 방법은 INTERVAL 키워드를 사용하여 명시적인 시간 단위를 지정하는 방식이다. SYSDATE + 1처럼 단순한 덧셈은 직관적이고 빠르게 사용할 수 있지만, INTERVAL '2' HOUR, INTERVAL '3 10' DAY TO HOUR처럼 INTERVAL 키워드를 사용하면 보다 명확하게 단위를 표현할 수 있어 가독성과 유지보수 측면에서 강점이 있다. 목차일반 수식을 사용하여 날짜를 더하거나 빼는 방법INTERVAL을 사용하여 날짜를 더하거나 빼는 방법일반 수식을 사용하여 날짜를 더하거나 빼는 방법SELECT SYSDA..
오라클 SQL에서 JSON 데이터 내에 특정 키나 값이 존재하는지 여부를 판단하기 위해서는 JSON_EXISTS 함수를 사용하면 된다. 이 함수는 JSON 문서에서 루트($), 배열 인덱스, 키 이름, 조건 등을 이용해 특정 경로를 지정하고, 해당 경로에 값이 존재하는지를 TRUE 또는 FALSE로 반환한다. 배열 안에 특정 요소가 포함되어 있는지 확인하거나, JSON 객체 내에 특정 키가 존재하는지 조건을 걸 때 유용하게 사용된다. JSON_EXISTS 함수는 WHERE, HAVING, CASE 등 다양한 조건절에 활용 가능하여, JSON 기반 데이터의 유효성 검증이나 조건 필터링에 매우 효과적이다. 목차JSON_EXISTS 기본 사용법JSON_EXISTS 활용법JSON_EXISTS 배열에서 사용법 J..
오라클 SQL에서 JSON 데이터에서 특정 항목의 JSON 객체( {} ) 또는 배열( [] )을 추출하기 위해서는 JSON_QUERY 함수를 사용하면 된다. JSON_QUERY 함수를 사용할 때는 루트($), 배열 인덱스, 키 이름을 지정하여 원하는 JSON 데이터를 선택할 수 있다. JSON_QUERY 함수는 반환되는 JSON 데이터의 형식은 VARCHAR2(4000)이며, 반환 값의 데이터 유형을 RETURNING 옵션을 사용하여 CLOB, BLOB로 지정할 수 있다. 또한, JSON 데이터를 보기 좋게 포맷하려면 PRETTY 옵션을, 비 ASCII 문자를 이스케이프 하려면 ASCII 옵션을 사용할 수 있다. 목차JSON_QUERY 기본 사용법JSON_QUERY 옵션 사용법JSON_QUERY 사용..
오라클 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..
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.