본문 바로가기

오라클

오라클 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.. 더보기
ERWin Tip (Reverse Engineer) 기생성 테이블들을 ER Model로 추출 ERWin Tip (Reverse Engineer) 오라클로 만든 테이블들을 ER Model로 바꾸는 방법입니다... 이 방법을 사용하면 오라클에서 SQL로 만든 Customer, Artist, 등등의 테이블들을 ER 모델로 바꿔어서 나옵니다~ 먼저... erwin을 실행 > 메뉴창에 tools > reverse engineer 실행 new model type에 Logical/Physical 선택합니다. Create Using template (가져올 템플릿 선택 blank로 ERwin 에서 생성해 줍니다.) Target database 에서 데이타 베이스에 Oracle 선택하시고 버전 선택합니다 (Oracle 9i) NEXT버튼을 선택하면 데이타베이스 파일을 가져올 것인가? 스크립트 파일을 가져올 것인.. 더보기
오라클 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 더보기
오라클 DB lock 락해제 --락이 걸린 세션 간단히 알아보기 select a.sid, a.serial#, b.type, c.object_name, a.program, a.lockwait, a.logon_time, a.process, a.osuser, a.terminal from v$session a, v$lock b, dba_objects c where a.sid = b.sid and b.id1 = c.object_id and b.type = 'TM'; ; --세션 ID로 세션 강제종료 ALTER SYSTEM KILL SESSION '98,9258' 더보기
MemoryAnalyzer 메모리 덤프 확인 툴 2014 12월 내용 보완 개요 웹서버 설정을 통해 생성된 덤프파일을 분성해주는 툴입니다. 덤프파일 은 *.hprof 형태로 생성된 덤프파일을 분석할 수 있습니다. 사용방법 1. 서버 덤프 생성 설정 http://htdotl.tistory.com/21 http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html http://tinywolf.tistory.com/103 jeus 사용시 JEUSMain.xml 에 설정된 설정 예시 apache 21 -Xms1024m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMe.. 더보기
이클립스 콘솔창 버퍼사이즈 설정하기, 파일목록검색창 활용 콘솔창 로그 많이 보는 방법입니다. 좀더 많은 로그내역을 보고자 할 경우 다음 옵션을 변경하면 가능합니다. 콘솔창 버퍼사이즈 설정 [windows]/[Preferences]/[Run/Debug]/[Console]/Console buffer size(characters) 그리고 아래 단축키를 사용하여 파일목록을 검색창을 띄우는 기능도 있습니다. 파일첨부했어요 ctrl+alt+r/ ctrl+alt+t 단축키 사용가능 플러그인 파일첨부(플러그인.zip) 플러그인.zip 열모드 편집 (갈릴레오 버전 적용) Alt+Shift+A 더보기
오라클 함수 TRANSLATE 생각보다 복잡하네요 이해하는데 좀 사간이 걸리더라는 인자값은 ('대상문자열', '비교문자', '바꿀문자') 비교문자 문자셋에 걸리는 것을 바꿀 문자의 순서대로 바꿔? 줍니다. 바꿀문자가 비교문자보다 문자수가 작으면 매핑값을 없애버립니다 select translate('abcde', 'ac', 'xx' ) from dual => xbxde select translate('abcde', 'ac', 'x' ) from dual => xbde ============================================================================= 1. 단순 문자열 치환 : TRANSLATE('대상문자열', '비교문자', '바꿀문자') > select translate('1234.. 더보기
[오라클 권한 오류]뷰 조회 시 권한 오류 해결 [with grant option] scott 스키마의 emp 테이블 조회 권한을 user1 에게 줄 경우 grant select on emp to user1; t1 (여기부여) u2 grant=>v1 u3 t1 v2(select * form t1 ) select * from u2.v2 더보기
오라클 PL/SQL Developer 소개 http://www.allroundautomations.com/plsqldev.html DB툴 소개 PL/SQL Developer 는 오라클 데이터베이스에 특화된 대한 저장된 프로그램 단위의 개발을 목표로하는 통합 개발 환경입니다. 토드보다 쌉니다.. 7.x 버전부터 유니코드를 지원합니다. 유용한 기능 들 PL/SQL Beautifier (sql 자동 정렬) 서버로그파일등에 저장된 sql 을 추출할때 줄바꿈 등의 문제로 sql 구분을 파악하기 힘든 경우가 많습니다. 특히나 인라인뷰등이 포함된 복잡한 sql의 가독성을 향상시켜 코딩 생산성을 좋게 해줍니다. 자동 레퍼런스.. 오브젝트에 점찍으면 관련 펑션등이 자동으로 조회.. (xcode 개발해보신분이라면 이해가실듯) 오브젝트명 3글자이상 타이핑시 자동 가.. 더보기
[오라클] 오라클 함수 구분 함수명 사용빈도 설명 예제 유사처리 문자함수 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',.. 더보기
[정규식] 태그제거 오라클 정규식 함수 html 가 db 에 저장되면 text, textarea 에서 값을 볼때 태그가 그대로 노출됩니다. 아래방법은 ' ,'' )as content 더보기
[오라클]오라클 함수 모음 구분 함수명 사용빈도 설명 예제 유사처리 문자함수 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.. 더보기
[오라클]sql 팁 날짜관련 주차구하기 오늘이 1년 기준으로 몇주차인지 구하려고 할때 필요한 sql SELECT DT ,TO_CHAR(TRUNC(dt) + tmpCnt,'w') "주차(일)" ,TO_CHAR(TRUNC(dt) + tmpCnt + CASE WHEN tmpCnt = 0 THEN 6 ELSE -1 END,'w') "주차(월)" ,TO_CHAR(TRUNC(dt) + tmpCnt + CASE WHEN tmpCnt 더보기
[오라클] 힌트 /*+role*/ 사용하기 힌트의 간단한 개요 sql을 실행할 경우 옵티마이저는 최적의 수행방식이라 판단되는 것을 선택하여 처리하는데 경우에 따라서는 옵티마이저가 선택한 수행방식과 실제 최적의 결과가 나올 수 있는 방식이 다른 경우가 있어 이를 사용자의 의도에 따라 실행하고자 할때 사용되는 방식입니다. select /*+role*/ , emp_no , emp_nm from emp where cdate > '20110101' role hint 를 사용하는 경우는 옵티마이저가 특정 규칙을 따라 수행을 하라는 의미입니다. 옵티마이저의 수행방식은 위의 경우 인 규칙기준 최적화( Role -Base) 와 통계에 따른 발생비용(Cost)을 기준으로 최적화를 진행하는(Cose - Base) 두 가지의 방식으로 나뉩니다. sql 대상 테이블의 .. 더보기
[오라클]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 로 등록함 더보기
[오라클] xmlagg 여러행의 row 데이터를 하나의 row에 컬럼으로 조회하기 select xmlagg(xmlelement(nm,'[구분자]',[대상컬럼])order by rownum).EXTRACT('//text()').GETSTRINGVAL() from [테이블명] 이게 어디에 쓰일까 했는데. 실제로 쓸일이 생기긴 하네요.. 함수명을 못찾아서 한참을 뒤졌네요..ㅋ 더보기
[오라클] 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')); 더보기