3. Database/Oracle 기본
-
[Oracle] 오라클 피벗(1) - LISTAGG, WM_CONCAT 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라클 피벗, listagg, wm_concat (피벗, 첫번째) ] 입니다. :) 여러 Row 값을 하나의 컬럼으로 돌려서 가져오고 싶은때가 있다. 이때 , 등 구분자를 통해 가져오는 방법이다. (ex 갓대희, 김동수, 김치맨 )(오라클에서 피벗턴 가능 하다 => 세로정렬을 가로정렬로 전환) 다음과 같은 로그인 히스토리가 있다고 가정하자. ▶ 임시 데이터 생성 WITH TEMPLOGINLOG AS ( SELECT 'MOBILE' AS ID, '갓대희' AS NAME FROM DUAL UNION ALL SELECT 'PC' AS ID, '갓대희' AS NAME FROM DUAL UNION..
[Oracle] 오라클 피벗(1) - LISTAGG, WM_CONCAT[Oracle] 오라클 피벗(1) - LISTAGG, WM_CONCAT 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라클 피벗, listagg, wm_concat (피벗, 첫번째) ] 입니다. :) 여러 Row 값을 하나의 컬럼으로 돌려서 가져오고 싶은때가 있다. 이때 , 등 구분자를 통해 가져오는 방법이다. (ex 갓대희, 김동수, 김치맨 )(오라클에서 피벗턴 가능 하다 => 세로정렬을 가로정렬로 전환) 다음과 같은 로그인 히스토리가 있다고 가정하자. ▶ 임시 데이터 생성 WITH TEMPLOGINLOG AS ( SELECT 'MOBILE' AS ID, '갓대희' AS NAME FROM DUAL UNION ALL SELECT 'PC' AS ID, '갓대희' AS NAME FROM DUAL UNION..
2017.07.26 -
[Oracle| 오라클 데이터 복구 (TIMESTAMP) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라클 데이터 복구 하기 (delete로 삭제한 건 ) ] 입니다. :) 데이터를 실수로 삭제(delete, truncate는 불가) 하고 commit하였을때 실수로 지운다던지, 복원을 시켜야 한다던지 당황하고 멘붕이 왔던 경험이 많을 것이다. 이때 특정시간 또는 시점으로 되돌릴 수 있는 기능이 Oracle Flashback 기능이다. 이 플래시백 기능을 통해 as of timestamp 구문을 사용하여 삭제 전의 데이터를 조회하여 복구 할 수 있다. ▶ Flashback을 사용할 수 있는 조건 ※ 설정 1. 자동 언두 관리 시스템을 사용해야 합니다. (UNDO_MANAGEMENT 파라미터를 AUTO로..
[Oracle| 오라클 데이터 복구 (TIMESTAMP)[Oracle| 오라클 데이터 복구 (TIMESTAMP) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라클 데이터 복구 하기 (delete로 삭제한 건 ) ] 입니다. :) 데이터를 실수로 삭제(delete, truncate는 불가) 하고 commit하였을때 실수로 지운다던지, 복원을 시켜야 한다던지 당황하고 멘붕이 왔던 경험이 많을 것이다. 이때 특정시간 또는 시점으로 되돌릴 수 있는 기능이 Oracle Flashback 기능이다. 이 플래시백 기능을 통해 as of timestamp 구문을 사용하여 삭제 전의 데이터를 조회하여 복구 할 수 있다. ▶ Flashback을 사용할 수 있는 조건 ※ 설정 1. 자동 언두 관리 시스템을 사용해야 합니다. (UNDO_MANAGEMENT 파라미터를 AUTO로..
2017.07.26 -
[Oracle] Delete, Truncate, Drop 비교 구분 테이블 정의 저장공간 작업속도 SQL문 종류 구분 DELETE 존재 유지 느림 DML TRUNCATE 존재 반납 빠름 DDL DROP 삭제 반납 빠름 DDL 테이블의 데이터를 삭제 처리 할때 Delete,Truncate를 이용한다. 눈으로 보기에는 Delete, Truncate와 별도 차이점 없이 둘다 데이터가 삭제 되는 것으로 생각 될 수 도 있지만 Delete,Truncate 각각 처리되는 과정과 결과가 틀린 큰 차이점이 존재 한다. [TRUNCATE 구문] TRUNCATE TABLE [ { database_name.[ schema_name ]. | schema_name . } ] table_name [ ; ] [DELETE 구문] ..
[Oracle] Delete, Truncate, Drop 비교[Oracle] Delete, Truncate, Drop 비교 구분 테이블 정의 저장공간 작업속도 SQL문 종류 구분 DELETE 존재 유지 느림 DML TRUNCATE 존재 반납 빠름 DDL DROP 삭제 반납 빠름 DDL 테이블의 데이터를 삭제 처리 할때 Delete,Truncate를 이용한다. 눈으로 보기에는 Delete, Truncate와 별도 차이점 없이 둘다 데이터가 삭제 되는 것으로 생각 될 수 도 있지만 Delete,Truncate 각각 처리되는 과정과 결과가 틀린 큰 차이점이 존재 한다. [TRUNCATE 구문] TRUNCATE TABLE [ { database_name.[ schema_name ]. | schema_name . } ] table_name [ ; ] [DELETE 구문] ..
2017.07.24 -
[오라클 버전확인 쿼리] 1) select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production "CORE 11.2.0.4.0 Production" TNS for HPUX: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production 2) select product, version from sys.pr..
[Oracle] 버전 확인[오라클 버전확인 쿼리] 1) select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production "CORE 11.2.0.4.0 Production" TNS for HPUX: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production 2) select product, version from sys.pr..
2017.07.24 -
-- ********** 2ST. DBMS_SCHEDULER************* /* 10g이상에서만 사용가능 dbms_job 패키지보다 확장된 기능으로 dbms_job 에서 안되는 외부 스크립트를 실행 할 수 있음 (1) 주요특징 - 오라클에서 생성된 프로시저나 함수 외에 os에서 생성된 각종 유틸이나 프로그램까지도 실행가능 - 설정할 때 일반적으로 사용하는 자연어를 사용하여 편하게 설정 가능 - db 내부이벤트까지 추적가능하기 때문에 os나 dbms_job 보다 훨씬 다양하게 작업을 체크하고 수행가능 이 작업을 하기 위해선 해당 계정이 create any job 권한을 가지고 있어야 함 계정에 권한 부여 grant create any job to 계정 ; (2) 구성 - program : 이 부분..
[Database] Oracle 스케쥴, 잡(2)-- ********** 2ST. DBMS_SCHEDULER************* /* 10g이상에서만 사용가능 dbms_job 패키지보다 확장된 기능으로 dbms_job 에서 안되는 외부 스크립트를 실행 할 수 있음 (1) 주요특징 - 오라클에서 생성된 프로시저나 함수 외에 os에서 생성된 각종 유틸이나 프로그램까지도 실행가능 - 설정할 때 일반적으로 사용하는 자연어를 사용하여 편하게 설정 가능 - db 내부이벤트까지 추적가능하기 때문에 os나 dbms_job 보다 훨씬 다양하게 작업을 체크하고 수행가능 이 작업을 하기 위해선 해당 계정이 create any job 권한을 가지고 있어야 함 계정에 권한 부여 grant create any job to 계정 ; (2) 구성 - program : 이 부분..
2017.07.17 -
-- ********** 1ST. DBMS_JOB************* 주기적으로 수행되어지는 JOB을 JOB QUEUE를 사용하여 스케줄링 할 수 있다. (데이터베이스 내에 생성한 프로시저 함수들에 대해 데이터베이스 내의 스케줄러에게 지정한 시간에 자동으로 작업이 진행될 수 있도록 하는 기능) JOB을 스케줄링 하기 위해서 ORACLE의 DBMS_JOB 패키지를 이용하며 JOB QUEUE PROCESS가 JOB QUEUE안의 잡을 수행한다. JOB으로 등록될 수 있는 것은 PL/SQL 프로시저 또는 패키지가 되며, 유닉스에서 CRON에 등록하여 사용하는 것과 유사하다고 하다. CRON JOB은 OS가 직접 관리하고 실행하지만 DBMS_JOB에 등록된 JOB은 오라클이 관리한다.ORACLE 에서 DBM..
[Database] Oracle 스케쥴, 잡-- ********** 1ST. DBMS_JOB************* 주기적으로 수행되어지는 JOB을 JOB QUEUE를 사용하여 스케줄링 할 수 있다. (데이터베이스 내에 생성한 프로시저 함수들에 대해 데이터베이스 내의 스케줄러에게 지정한 시간에 자동으로 작업이 진행될 수 있도록 하는 기능) JOB을 스케줄링 하기 위해서 ORACLE의 DBMS_JOB 패키지를 이용하며 JOB QUEUE PROCESS가 JOB QUEUE안의 잡을 수행한다. JOB으로 등록될 수 있는 것은 PL/SQL 프로시저 또는 패키지가 되며, 유닉스에서 CRON에 등록하여 사용하는 것과 유사하다고 하다. CRON JOB은 OS가 직접 관리하고 실행하지만 DBMS_JOB에 등록된 JOB은 오라클이 관리한다.ORACLE 에서 DBM..
2017.07.17