💻 IT 66

[DB/SQL] ORACLE LAG,LEAD 함수 사용법 정리 (이전, 다음값)

오늘은 오라클 함수 중에 LAG, LEAD에 대해서 정리해보겠습니다. LAG, LEAD란?LAG, LEAD 함수는 행의 이전 값을 찾거나 다음행을 찾는 용도로 사용된다.- LAG : 질의 결과 행의 이전 값을 찾을 때 사용  LAG(EXPR [,OFFSET] [,DEFAULT]) OVER([PARTITION_BY_CLAUSE] ORDER_BY_CLAUSE)- LEAD : 질의 결과 행의 이전 값을 찾을 때 사용  LEAD(EXPR [,OFFSET] [,DEFAULT]) OVER([PARTITION_BY_CLAUSE] ORDER_BY_CLAUSE)expr : 대상 컬럼명offset : 값을 가져올 행의 위치 기본값은 1 (생략가능)default : 값이 없을 경우 기본값 (생략가능)partition_by_..

[JAVA] NullPointerException 체크 & 해결방법(초간단)

오늘은 자바로 개발하다 보면 한 번씩 볼 수 있는"Exception in thread "main" java.lang.NullPointerException:"NPE(NullPointerException)에 대해 체크방법과 해결방법을 알려드리겠습니다. NPE(NullPointerException)는 왜 발생하는 걸까?자바 객체를 이해하고 계신다면 쉽게 이해할 수 있습니다. 객체에 접근(참조)하려는데 접근하려는 객체가 초기화가 안되어 있거나 자체가 null인 경우에 예외가 발생합니다. 컴퓨터( 컴파일러) 입장에서는 접근하려는 객체(메모리주소)가 없기 때문에 어디 자원을 접근할지 모르니 예외가 발생합니다. NullPointerException이 발생하는 경우1. NULL 객체에서 메소드를 호출하는 경우2. NU..

💻 IT/📌 Java 2024.11.11

[DB/SQL] 날짜, 시간 형식 표현하는 법 | TO_CHAR로 표현

보통 DATE 타입을 SELECT 하면 툴에 설정되어 있는 형식으로 표현이 되는데요, 원하는 날짜&시간 형식에 맞게 표현하는 법을 알려드리겠습니다. (툴에 설정되어있는 시간포맷 변경방법은 아래 참고해 주세요!) [DB TOOL] SQL Developer 날짜 형식 변경방법 | 시간 포멧 변경오늘은 SQL Developer에서 날짜형식을 변경하는 법을 알려드리겠습니다. SQL Developer에서 기본 날짜형식SELECT SYSDATE FROM DUAL디벨로퍼에서 현재일자를 표시해 보면 RR/MM/DD 형식으로 표시되고 있는데요,godsu94.tistory.com  TO_CHAR 함수 사용TO_CHAR는 데이터타입을 지정형식으로 출력할 수 있게 하는 함수입니다. 이 함수로 원하는 날짜형식을 출력할 수 있는..

[DB TOOL] SQL Developer 날짜 형식 변경방법 | 시간 포멧 변경

오늘은 SQL Developer에서 날짜형식을 변경하는 법을 알려드리겠습니다. SQL Developer에서 기본 날짜형식SELECT SYSDATE FROM DUAL디벨로퍼에서 현재일자를 표시해 보면 RR/MM/DD 형식으로 표시되고 있는데요, 이 방법을 YYYY-MM-DD HH24:MI:SS 형식으로 변경해 보겠습니다  날짜형식 변경설정  SQL Developer 상단에 "도구" -> "환경설정"에 들어갑니다. 현재 날짜형식이 RR/MM/DD로 되어있는데 YYYY-MM-DD HH24:MI:SS 로 수정합니다.   변경 후에 다시 SELECT로 날짜형식을 확인해 보면 잘 반영된 걸 확인할 수 있습니다!  감사합니다.

💻 IT/📌 TOOL 2024.09.03

[DB/SQL] ORACLE LISTAGG 함수 사용법 정리 | 행을 열로 바꾸기

오늘은 여러 행의 칼럼을 하나의 값으로 합칠 수 있는 LISTAGG 함수를 정리해 보겠습니다. LISTAGG 함수LISTAGG([합칠 칼럼명], [구분자]) WITHIN GROUP(ORDER BY [정렬 칼럼명])lISTaGG함수는 그룹함수이기 때문에 GROUP BY와 PARTITION BY절과 같이 사용해야 한다.  예제[테스트 데이터]  1. LISTAGG 함수로 칼럼 합치기SELECT LISTAGG(EMP_NAME, ',') WITHIN GROUP(ORDER BY AGE) AS EMP_NAME FROM EMP_TABLE WHERE POSITION = '사원'쿼리를 확인해 보면 사원인 직책(POSITION)만 잡아서 직원이름을 합친 결과를 볼 수 있다.   2. GROUP BY 절을 이용하..

[DB/SQL] ORACLE NVL 함수 사용법 정리

오늘은 쿼리 작성 시 NULL 체크를 하는 NVL 함수 사용법을 정리해 보겠습니다. NVL 함수NVL 함수는 값이 NULL 인경우에 지장 된 값을 출력할 수 있고, 아닌 경우 원래 값을 출력한다.NVL("값", "지정값") SELECT * FROM EMP_TABLE SELECT EMP_TABLE.ETC ,NVL(EMP_TABLE.ETC,'지정값') FROM EMP_TABLE예제를 보면 EMP_TABLE에는 ETC라는 기타 항목이 있는데, 현재 값이 모두 NULL로 되어있다. 하지만 NVL 함수를 이용해서 NULL 경우 '지정값'이 보이게 출력되고 있다.  NVL2 함수NVL2 함수는 값이 NULL 인 경우에는 지정값1을 출력하고, NULL 아닌 경우에는 지정값2를 출력한다.NVL2("값",..

[DB/SQL] ORACLE WITH절 사용법 정리

오늘은 SQL 작성 시에 자주 사용되는 임시테이블 WITH절에 대해서 정리해 보겠습니다.  WITH 절이란?WTTH 절은 오라클에서 정의된 문장으로 공유 메모리에 임시 테이블을 생성하여 반복 재사용이 가능하도록 할 수 있는 절이다.  메모리에 임시 테이블을 생성해서 동일 테이블 접근을 최소화하고 디스크 IO로 접근하는 것보다 성능을 개선할 수 있기 때문에 사용한다.  왜 WITH절을 사용하는 것일까? WITH절은 복잡하고 반복적인 SQL문을 사용하는 경우 이름을 부여해서 재사용할 수 있게 해서 쿼리의 성능을 높일 수 있다. 이름을 부여한다는 점은 QUERY BLOCK을 만들어 자주 실행되는 경우 한 번만 파씽되고 플랜 계획도 수립되어 쿼리 성능 향상에 도움이 된다. WITH TEST_WITH AS( ..

[DB/SQL] 오라클 PARTITION BY 정리 | 집계함수 사용 | 순위함수 사용

오늘은 쿼리를 작성할 때 유용하게 사용되는 PARTITION BY 문법을 정리해 보겠습니다. 함수() OVER([PARTITION BY 열이름] ORDER BY 열 이름) 오라클에서 집계(그룹화)하여 표현할 때는 GROUP BY절을 이용해서 보여줄 수 있지만, 각각 행마다 집계된 값을 표시하기 위해서는 PATITION BY 절로도 표시할 수 있다. CREATE TABLE emp_table( emp_id NUMBER NOT NULL, emp_name VARCHAR2(100) NOT NULL, gender VARCHAR2(10) NULL, age NUMBER NULL, position..

[DB/SQL] 데이터베이스 한글 바이트 확인 | ORACLE 한글 | 한글 Byte | DB 한글 확인 | DB 한글 몇바이트 | 오라클 한글 바이트

최근에 데이터 입력을 하다가 한글 1000자 이상을 못넣는 현상을 발견했어요DB 확인해보니 컬럼 값이 4000Byte가 MAX로 되어있더라고요 ~_~ 한글은 2Byte인줄 알았는데 저희회사에서는 3Byte로 넣고 있더라구요!그래서 요번에는 DB마다 캐릭터 셋 확인하는 방법을 알려드리겠습니다~ SELECT * FROM NLS_DATABASE_PARAMETERSWHERE PARAMETER = 'NLS_CHARACTERSET' OR PARAMETER = 'NLS_NCHAR_CHARACTERSET'  해당 쿼리르 조회해보시면 캐릭터 셋마다 저장 속성을 볼 수 있는데요! [한글을 지원하는 캐릭터셋]1. KO16KSC56012. KO16MSWIN9493. AL32UTF84. UTF8 [KO..

[DB/SQL] 계층형 쿼리 정리 ( START WITH, CONNECT BY PRIOR, ORDER SIBLINGS BY)

최근에 회사에서 종속된 관계를 다루는 쿼리를 짜면서..계층형 쿼리를 짜게 되었는데요~알아두면 좋을거같아서 정리해보겠습니다!  문법정리- 계층형 쿼리란? 부모, 자식 간의 수직관계를 트리 구조 형태로 보여주는 쿼리   예제 [테이블 생성]위에 문법을 적용할 테이블을 준비했습니다. 간단하게 테스트하시는 분은 따라해보시면 좋습니다.CREATE TABLE DPT ( HI_DPT_CD VARCHAR2(20), --상위부서 LO_DPT_CD VARCHAR2(20), --하위부서 SEQ number(3) --부서이력 STDT VARCHAR2(8) --시작일시);어디 조직이든 한번씩은 있는 부서 테이블 입니다.  [테스트 데이터 입력]/*ITHQ : IT본부ITDV : IT개발팀ITDVS : IT개발셀*/IN..