728x90
반응형

Development /Database 8

[Oracle] 오라클 데이터 추출 조회쿼리

*** 지정한 컬럼에 대한 데이터 rank()로 가져오기 조건절에 해당하는 데이터를 group by로 묶어 추출하여 ord1, ord2로 정렬해 rank()로 순서값을 보여주는 쿼리 select * from ( select ord1, ord2 , rank() over(partition by ord1 order by ord1, ord2) num from TMP_DATA where tmp_code='CP' group by ord1, ord2 ) where num < 4 -- rank()값이 4보다 작언것만 보여주도록 설정함 ; *** 조건절로 100개 데이터 각각 추출한 데이터를 모두 합쳐서 조회 ( union all) select * from( select * from TMP_DATA where tmp_c..

[Oracle] order by 절에서 정렬순서 변경

#오라클에서 order by 정렬 순서 변경할때 ▶ 한글, 숫자, 영문 순서 ORDER BY CONVERT(컬럼명, 'ISO2022-KR') ▶ 한글, 영문, 숫자 순서 ORDER BY 컬럼명 DESC ORDER BY CONVERT(컬럼명, 'US8ICL') ▶ 영문, 한글, 숫자 순서 ORDER BY CONVERT(컬럼명, 'UTFE') ▶ 숫자, 한글, 영문 순서 ORDER BY CONVERT(컬럼명, 'VN8VN3') ▶ 숫자, 영문, 한글, NULL 순서 ORDERY BY 컬럼명

[Oracle] 오라클 테이블 스페이스별 사용중인 용량 확인 쿼리문(GB, MB단위)

# 테이블 스페이스별 사용중인 용량 확인 쿼리문(GB, MB단위) select substr(a.tablespace_name, 1, 30) "tablespaceNm", -- 테이블스페이명 round(sum(a.totalM)/1024/1024/1024, 1) "totalGb", -- 총GB공간 round(sum(a.totalM)/1024/1024, 1) "totalMb", -- 총MB공간 round(sum(a.totalM)/1024/1024, 1) - round(sum(a.sumM)/1024/1024, 1) "useMb", -- 사용MB용량 round(sum(a.totalM)/1024/1024/1024, 1) - round(sum(a.sumM)/1024/1024/1024, 1) "useGb", -- 사용GB..

[Oracle] 오라클 그룹함수

#오라클 그룹함수 중에 group by는 기본이고 내가 자주 사용하는 함수 중에는 rollup이다. 1. Group by절 : 그룹으로 묶어 조회 ex) select 부서, 날짜, sum(금액) tmon from test_data group by 부서, 날짜 ; => 그룹핑 2. Rollup함수 : 인자의 순서대로 소계, 총합계 구하기 ex) select 부서, 날짜, sum(금액) tmon from test_data group by rollup(부서, 날짜); => 부서, 날짜 순서로 소계, 총합계를 구함. 3. Cube함수 : 그룹핑 컬럼이 가질 수 있는 모든 경우의 수에 대해 소계와 총합계를 구함. ex) select 부서, 날짜, sum(금액) tmon from test_d..

[오라클] 오라클에서 3byte를 차지하는 한글 캐릭터셋

오라클에서 한글을 3byte로 차지하는 캐릭터셋 1. AL16UTF8 1) 한글 1글자 3 Byte : UTF8로 한글 11,172자 2) 한글 1글자 2 Byte . KO16KSC5601 :한글 완성형 2,350자지원 . KO16MSWIN949: KO16KSC5601+확장 8822자 지원 2. AL32UTF8 : 한글 1글자 3 Byte 차지, 한글 11,172자 지원. UTF8과 다른점은 내셔널 캐릭터셋 설정 불가능 참고) 캐릭터셋 확인 SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET' OR PARAMETER = 'NLS_NCHAR_CHARACTERSET'

[오라클] delete, update한 commit 데이터 복구하기

oracle에 삭제하거나 수정한 데이터를 특정 시간대로 돌아가 복구해주는 ORACLE FLASHBACK 기능 ( 9i버전부터 가능) 타임스탬프 설정한 시간에 따라 이전 시간의 데이터로 복구 가능 예제) delete,update 등의 작업하기 3분 전의 데이터 조회 SELECT * FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '3' MINUTE) WHERE 조건절; 예제) delete하기 3분전 데이터 조회하여 테이블에 저장 INSERT INTO 테이블명 SELECT * FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP- INTERVAL '3' MINUTE) WHERE 조건절;

[ Oracle ] table to table로 다중 업데이트 방법

테이블의 데이터를 select하여 바로 update 처리하는 방법 -- 조건 구분 및 중복데이터 제거 등 처리할때 사용 UPDATE world MM SET ( name, auth, code, cont, ndate, ntype ) ) = ( SELECT BB.n_name AS name , BB.n_auth AS auth , 'A001' AS code , BB.n_cont AS cont , TO_CHAR(SYSDATE, 'YYYYMMDDHHMMSS') AS ndate , CASE WHEN SUBSTR ( BB.n_type, 0, 8) > '20180130' THEN 'A' ELSE 'D' END AS ntype FROM world AA , korea BB WHERE AA.scode = '10' AND AA...

728x90
반응형