본문 바로가기

공부방/DataBase24

FETCH FIRST ROW 해당 기능은 오라클 12c 버전부터 사용가능하고그 이전버전의 경우는 ROWNUM을 이용해서 사용해야한다.  1. FETCH FIRST ROW 개념  기능 설명  FETCH FIRST ROW는 쿼리 결과에서 첫 번째 행(또는 지정된 수의 행)만을 반환하도록 제한하는 SQL 키워드.   대량의 데이터 중에서 필요한 첫 번째 행만을 쉽게 가져올 수 있다.  사용 시기 1) 성능 최적화가 필요할 때2) 대량의 데이터 중 특정 조건을 만족하는 첫 번째 행만 필요할 때3) 페이징 처리의 일부로 특정 페이지의 데이터를 가져올 때  동작 원리  FETCH FIRST ROW는 쿼리의 결과 집합에서 지정된 수의 행을 반환.   기본적으로 ORDER BY 절과 함께 사용되어 쿼리 결과를 정렬한 후, 첫 번째 행을 선택한다.. 2024. 7. 6.
[Oracle] 콤마로 분리된 문자열을 여러 행으로 변환(REGEXP_SUBSTR) 일하며 쿼리를 만드는데 컬럼값의 데이터를 콤마(,)를 기준으로 짤라서 각각 행으로 조회하도록 하는 쿼리가 필요하게 됨. 어떻게 해야하나 뒤적뒤적거려보니 답이 나오긴 하더라 나는 콤마(,)를 기준으로 짜르지만 다른사람은 다른 특수문자를 기준으로 짜를수도 있으니까 정규식을 이용해서 콤마(,)를 기준으로 짤라서 조회를 하게 됨. 예제 SELECT REGEXP_SUBSTR(VALUE, '[^,]+', 1, LEVEL) AS GOOD FROM ( SELECT '1,2,3,4' AS VALUE FROM DUAL ) CONNECT BY LEVEL 2024. 3. 29.
[Oracle] 가로(행) 데이터를 세로(열)로 출력 1. 함수 UNPIVOT() 2. 문법 SELECT * FROM [테이블] UNPIVOT ([임의컬럼명1] FOR [임의컬럼명2] IN [세로로 출력할 컬럼 ] ); 임의컬럼명1 세로로 조할 데이터의 컬럼명을 지정 임의컬럼명2 세로로 조회하기로 한 컬럼들의 컬럼명 세로로 출력할 컬럼 가로(행)로 조회되던 데이터 중에 세로(열)로 출력하려고 하는 컬럼들 3. 예시 임의로 데이터를 생성하여 기본적인 조회결과( 각각의 컬럼이 가로로 출력됨) SELECT 'A' AS NAME, 11 AS "1", 12 AS "2", 13 AS "3", 14 AS "4", 15 AS "5", 16 AS "6" FROM DUAL UNION SELECT 'B' AS NAME, 11 AS "1", 21 AS "2", 31 AS "3".. 2023. 12. 14.
[Oracle] MERGE기능 1. MERGE란? Oracle 데이터베이스에서 사용되는 SQL 문의 한 종류이며, 두 테이블 간의 조합, 삽입, 업데이트, 삭제 등을 단일 문으로 처리할 수 있도록 해준다. 이는 보통 "병합" 또는 "업서트(UPSERT)"라고도 불리며 MERGE 문은 대상 테이블(또는 뷰)과 소스 테이블 간의 조인 조건을 기반으로 대상 테이블을 조작한다. 기본적인 MERGE 문의 구조 MERGE INTO target_table USING source_table ON (condition) WHEN MATCHED THEN UPDATE SET column1 = value1, column2 = value2, ... WHEN NOT MATCHED THEN INSERT (column1, column2, ...) VALUES (v.. 2023. 11. 19.
[Oracle] 월별 마지막 날짜 조회 LAST_DAY Oracle에서 월별 마지막 일자를 구하기 위한 함수. 월별 마지막일자가 다르기 때문에 매번 마지막 일자를 계산하다가 찾게 된 함수 사용법 SELECT LAST_DAY(TO_DATE(SYSDATE, 'YYYY/MM/DD')) FROM DUAL; SYSDATE에서 일자(DD)에 관계없이 무조건 해당월의 마지막일자로 변경된다 (2023/08/06 → 2023/08/31) 한해의 월별(1~12월) 시작일자 및 종료일자 구하기 SELECT D.START_DAY, LAST_DAY(D.START_DAY) AS END_DAY FROM (SELECT ADD_MONTHS(TO_DATE('2023/01/01', 'YYYY/MM/DD'), LEVEL - 1) AS START_DAY FROM DUAL CONN.. 2023. 8. 6.
[Oracle] 프로시저 내용 조회 프로젝트에 투입되어 일을 하다보면 혼자 일하는게 아니라서 내가 만들지 않은 부분에 대해 조회를 해봐야하는 경우가 있는데 정리되어 있는 문서가 없을 경우 찾아보기가 난해할때가 있다. 그럴때 유용한 기능 중 하나 ▶ 프로시저, 함수 등의 내용 검색 SELECT A.OBJECT_ID , A.OBJECT_NAME , A.OBJECT_TYPE , A.TEXT FROM USER_OBJECTS A INNER JOIN USER_SOURCE B ON A.OBJECT_NAME = B.NAME WHERE A.OBJECT_TYPE IN ("찾고자하는 프로시저 등") /* PROCEDURE, FUNCTION, PACKAGE BODY, PACKAGE 등 */ AND A.TEXT LIKE '%찾으려하는 문구(단어)%' /* 찾으려.. 2023. 2. 24.