728x90
반응형
SMALL

IT/SQL 3

[Oracle] 행 제한 구문 활용 페이징 처리 SQL 쿼리

행 제한특정 조건에 따라 행 개수를 제한하기 위해 사용하는 SQLSELECT *FROM USER_MST UMWHERE 1=1ORDER BY UM.USER_ID ASC NULLS LASTOFFSET {스킵할 건수} ROWSFETCH FIRST {보여줄 건수} ROWS ONLY;  예제하나의 페이지에 5개의 행을 나타낼 수 있고3번째 페이지인, 11~15번째 행을 조회하고 싶다면?SELECT *FROM USER_MST UMWHERE 1=1ORDER BY UM.USER_ID ASC NULLS LASTOFFSET 10 ROWSFETCH FIRST 5 ROWS ONLY;  파라미터로 페이징 처리pageNum = 3fetchNum = 5SELECT *FROM USER_MST UMWHERE 1=1ORDER BY UM..

IT/SQL 2024.08.07

[SQL] ORA-00955: 기존의 객체가 이름을 사용하고 있습니다.

DB툴인 Orange에서 다음의 에러가 발생했다. "ORA-00955: 기존의 객체가 이름을 사용하고 있습니다"     원인 :수동 커밋 설정에서CREATE TABLE 명렁어 실행 이후,Rollback Session 실행했더니 SELECT 도 안먹히고다시 CREATE TABLE 날려도 안먹히면서 위 에러가 발생.    PostgreSQL 에서는 DDL 문까지 롤백가능하지만오라클에서는 DDL 수행시 내부적으로 자동 COMMIT 을 수행 결국, Rollback 했더라도 테이블이 삭제되지 않은 상황.        해결 : DROP TABLE 테이블명; 테이블 드롭 후 재생성

IT/SQL 2024.07.29

[SQL] Postgresql에서 Oracle의 Merge into~ 구문 사용하기

오라클에서의 Merge into~ 구문처럼insert를 하고싶은데 이미 데이터가 있으면 update를 해야되는즉, insert와 update를 동시에 실행시켜야 하는 니즈가 생기기 마련  그러나 postgresql 에서는? Oracle의 Merge into~ 구문을 사용할 수 없다.대신 다른 방법이 존재한다. 원리는 간단하다.임시 테이블 + Returning * 구문을 활용하면 끝.심지어 insert/delete/update/select 원하는 순서로 동시 실행 가능하다.ex) 쿼리 한개로 ABC를 select를 하고 C를 delete하고 B만 update할 수가 있다 예시 쿼리1은 다음과 같다.sesert에서 특정 데이터 선택하고upsert에서 선택된 데이터만 특정컬럼 업데이트해주고 (Returning..

IT/SQL 2024.06.27
728x90
반응형
LIST