oracle 2

[Mybatis] 오라클 DB insert 이후 idx 값 가져오기 (nextVal, currVal)

오라클 DB에서 데이터 insert할 때 시퀀스로 idx를 생성하곤 한다. 만약 insert한 idx값을 바로 가져와야 할 경우 selectKey를 사용하면 된다. 예시를 들어보자. 아래 같이 테이블, 시퀀스가 만들어졌다고 가정한다. -- 테이블 생성 CREATE TABLE board ( board_id NUMBER NOT NULL, title VARCHAR2(50), wirter VARCHAR2(50) ) -- 시퀀스 생성 CREATE SEQUENCE sq_board_id START WITH 1 INCREMENT BY 1 MANVALUE 1 MAXVALUE 999999999 CYCLE CACHE 50; xml 쿼리에서 insert 태그 안에 selectKey 옵션을 사용해서 생성한 idx값을 바로 리턴..

Computer Science/DB 2023.11.22

Oracle offset (오라클 페이징 처리)

이번 프로젝트에서 SQL 튜닝 가이드를 받아 쿼리를 수정하면서 offset 키워드를 알게 되어 포스팅한다. 오라클은 12c 버전부터 offset과 limit가 추가되었다. Oracle 12c 이전 Oracle 12c 이전에는 ROW_NUM을 사용하여 페이징 처리를 했다. 단점은 쿼리를 view로 감싸므로 쿼리가 복잡해진다. SELECT * FROM ( SELECT a.*, ROWNUM AS "ROWNUM" FROM ( 사용자 정의 쿼리 QUERY ) a WHERE ROWNUM = start_number Oracle 12c 이후 Oracle 12c 이후부터는 행 제한(row limitng)을 이용하여 간단하게 페이징 처리할 수 있다. 오라클의 지저분한 페이징 처리를 간결하게 할 수 있는 장점이 있다. of..

Computer Science/DB 2022.10.05