본문 바로가기

Oracle

오라클 rank over, row_number 사용방법 통계정보를 보여주는 조회화면은 기본적으로 로우데이터를 특정기준으로 그룹핑하여 합계, 최고, 최저 값을 보여주죠.보통은 group by [기준컬럼] having [그룹조건] 형식으로 구현되지만 그룹내 특정 순위조건에 해당되는 값을 추출할때는 아래와 같이 조금 다른방법을 쓸 수 있습니다. rank() over(partition by [그룹컬럼] order by [그룹내 정렬컬럼])group by 와 달리 전체 로우데이터를 조회하면서 그룹핑된 정렬값을 같이 보여줄 수 있습니다. 예시 1) 부서, 인원별 월급 순위 구하기 SQL>>>>>>>>>>>>>>>with pay_info as ( select 4500000 as pay , '영업팀' as dept, '김민정' as emp from dual union al.. 더보기
오라클 rank over over , row_number over 활용 예시 통계정보를 보여주는 조회화면은 기본적으로 로우데이터를 특정기준으로 그룹핑하여 합계, 최고, 최저 값을 보여주죠.보통은 group by [기준컬럼] having [그룹조건] 형식으로 구현되지만 그룹내 특정 순위조건에 해당되는 값을 추출할때는 아래와 같이 조금 다른방법을 쓸 수 있습니다. rank() over(partition by [그룹컬럼] order by [그룹내 정렬컬럼])group by 와 달리 전체 로우데이터를 조회하면서 그룹핑된 정렬값을 같이 보여줄 수 있습니다. 예시 1) 부서, 인원별 월급 순위 구하기 SQL>>>>>>>>>>>>>>>with pay_info as ( select 4500000 as pay , '영업팀' as dept, '김민정' as emp from dual union al.. 더보기
오라클 SQL 조회기간에 대한 날짜별 row 생성 --일정보 SELECT MONTH FROM (SELECT DAY1 + LEVEL -1 MONTH FROM (SELECT TO_DATE('20070101', 'YYYYMMDD') DAY1 ,TO_DATE('20070103', 'YYYYMMDDHH') day2 FROM DUAL) CONNECT BY LEVEL 더보기
BLOB 이미지를 DB툴에서 직접 보기 http://www.componentsource.com/products/sqlyog/index-ko-krw.html 더보기
오라클 함수 TRANSLATE 생각보다 복잡하네요 이해하는데 좀 사간이 걸리더라는 인자값은 ('대상문자열', '비교문자', '바꿀문자') 비교문자 문자셋에 걸리는 것을 바꿀 문자의 순서대로 바꿔? 줍니다. 바꿀문자가 비교문자보다 문자수가 작으면 매핑값을 없애버립니다 select translate('abcde', 'ac', 'xx' ) from dual => xbxde select translate('abcde', 'ac', 'x' ) from dual => xbde ============================================================================= 1. 단순 문자열 치환 : TRANSLATE('대상문자열', '비교문자', '바꿀문자') > select translate('1234.. 더보기
[오라클] 오라클 함수 구분 함수명 사용빈도 설명 예제 유사처리 문자함수 CANCAT 낮음 첫 번째 문자와 두 번째 문자를 연결 select CONCAT('val1', ' val2') from dual; select CONCAT('val1', null) from dual; select 'val1' || 'val2' from dual; select 'val1' || null from dual; 문자함수 COALESCE 낮음 인자순서대로 값을 확인하여 null 이 아닌 첫번째 값을 출력 select coalesce( 'aa', 'bb', 'cc','dd' ) from dual; select coalesce( null, 'bb', 'cc','dd' ) from dual; select coalesce( null, null, 'cc',.. 더보기
[오라클]오라클 drop recyclebin 사용 오라클 10g 부터 drop 된 테이블을 다시 복구할 수 있는 기능이 있습니다. recyclebin(윈도우 휴지통을 생각하면 될듯) 설정에 따라 drop 된 테이블을 다시 복구할수 있습니다. 윈도우에서 폴더나 파일을 삭제하면 탐색기에서는 안보이지만 휴지통에서 확인이나 복구가 되는것 처럼 drop 된 테이블이 복구가능한 형태로 어딘가에 남아있는것이라 보시면 될듯 합니다. 설정여부 확인방법은 오브젝트(테이블) drop 후 select * form tab; sql 실행 후 조회된 목록 중 BIN$XXXXX~~~ 이라는 오브젝트가 보인다면 설된 것입니다. 그렇지 않다면 아래 옵션으로 recyclebin 설정을 하실 수 있습니다. ALTER SYSTEM SET "recyclebin"=ON; (ON / OFF) T.. 더보기
[오라클]DBMS 에서 입력값 유효성 체크하기 check constraint alter table USER_LIMIT add constraint CK_LIMIT_VAL check (LIMIT_NUM < 10001); --설명 -- USER_LIMIT 이라는 테이블의 LIMIT_NUM 컬럼에 데이터 입력 시 값이 10001 보다 작도록 constraint 체크속성을 등록함. 해당 체크속성의 이름은 CK_LIMIT_VAL 로 등록함 더보기
[오라클] ORA-30926 에러 확인 ORA-30926 원본 테이블의 고정 행 집합을 가져올 수 없습니다 unable to get a stable set of rows in the source tables 요런 메시지는 MERGE 구문 사용 시 발생될 수 있는 메시지 입니다. 추측가능한 오류로는 1. using 구문안에 데이터가 PK제약사항에 중복되는 경우 입니다. 더보기
[오라클] 실수로 테이블 데이터 날리고 커밋 후 데이터 복구 팁 간단하게 복구하는 방법입니다. ORACLE에는 TIMESTAMP라는 기능이 있습니다. 말그대로 해당시간의 DATA를 조회하는 기능입니다. 그래서 사고친시간 이전의 데이타를 조회해서 그 데이타를 복구할 수 있습니다. 1일동안의 데이터만 복구가능합니다. select * from table_name as of timestamp(to_timestamp('2011-02-22 10:00:00','yyyy-mm-dd hh24:mi:ss')); 더보기
[Oracle] 오라클 알쏭달쏭 NVARCHAR2 도데체 몇자까지 들어가는건지.. 일반적인 설명들은 인터넷 뒤져보면 참 많습니다.. 가변형문자열을 저장할때 사용하고 유니코드문자 지원을 위해 사용하며 nvarchar2는 varchar2보다 동일 데이터 저장시 공간을 2배 사용하며 한글이 3바이트씩 잡히네 어쩌네...하는둥... 한글이건 영문이건 한글자로 인식하네 어쩌네.... 이런 설명만으로는 이해가 안가서 직접 삽질을 시도했습니다. 일단 테이블을 생성한 후 타입을 nvarchar2(2000)으로 가지는 필드를 하나 만들어줬습니다. (4000)이 안먹더군요. 아마도 동일 데이터 저장시 공간을 2배 사용하며 .. 이런 구문때문이 아닐까 싶었습니다. 그러고는 무작정 insert 쿼리를 만들어 실행을 해댔지요. 일단 한글 500자 넣어봤습니다. 들어갑니다. 1000 자 넣어봣습니다. 들어값니.. 더보기