반응형

개발 & 데이터베이스/ORACLE 36

오라클 실수로 삭제한 데이터 복구하는 방법 (TIMESTAMP)

오라클 작업을 하다보면 실수로 데이터를 삭제하거나 수정하는 경우가 생길 수 있습니다. 이런 경우에는 TIMESTAMP를 사용해서 이전의 데이터를 조회하고 복구할 수 있습니다. 오라클 9i Release 2부터 Flashback이라는 기능이 생긴 후에 Flashback의 사이즈만큼의 데이터를 보관하고 있습니다. 사용하는 방법은 아래와 같습니다. SELECT * FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '10' SECOND); 위의 쿼리를 실행하면 10초 전 데이터를 조회할 수 있습니다. 또한 숫자와 SECOND를 변경해서 본인이 원하는 시간대를 조회할 수 있습니다. SECOND 초 MINUTE 분 HOUR 시간 DAY 일 특정 시점으로 조회 추상적으로 10초..

오라클 개발 환경 구축하기 (개발 툴 설치 방법)

대형 프로젝트에서는 주로 오라클 데이터베이스를 사용하는데요. 지금부터 오라클 개발 환경을 구축하는 방법에 대해서 알아보겠습니다. 1. 오라클 개발 환경 설치하기 (데이터베이스) 2. SQL Developer 설치하기 (개발 툴) 3. SCOTT 계정 생성하기 오라클 개발 환경 (SQL Plus) 설치하는 방법 1. https://www.oracle.com/database/technologies/xe-prior-release-downloads.html로 접속해서 본인 PC의 운영체제와 맞는 걸 찾아서 Download를 누른다. 2. Download OracleXE112_Win64.zip을 클릭한다. 3. 오라클 계정 로그인은 필수 4. 압축을 풀고 setup.exe를 실행한다. 5. Next를 계속 누르고..

오라클 조회 결과 정렬하는 방법 (ORDER BY 절)

오라클에서 검색 결과를 정렬하려면 ORDER BY 절을 사용합니다. 오름차순(Ascending sort) 와 내림차순(Descending sort) 로 정렬할 수 있습니다. SELECT 컬럼명 FROM 테이블명 WHERE 조건 ORDER BY 컬럼명 [ASC/DESC] 위의 임시 테이블(emp)로 ORDER BY 절의 사용법에 대해서 알아보겠습니다. 오름차순 (ASC) SELECT * FROM EMP WHERE 1=1 ORDER BY SAL ASC; SAL 컬럼이 작은 값부터 오름차순으로 정렬된 모습을 볼 수 있다. ORDER BY 절에서는 default 값이 ASC이기 때문에 생략해도 무관하다. 내림차순 (DESC) SELECT * FROM EMP WHERE 1=1 ORDER BY SAL DESC; 정..

오라클 숫자 천단위 콤마 찍는 방법 2가지 (TO_CHAR 함수)

어떠한 숫자에 천단위로 콤마(,)를 찍고 싶으면 어떻게 해야할까요? 오라클에서는 TO_CHAR 함수 혹은 정규식 함수 (REGEXP_REPLACE) 를 이용해서 천단위로 콤마(,)를 찍을 수 있습니다. 두 가지 방법에 대한 장단점과 사용 방법에 대해서 알아보겠습니다. 1. TO_CHAR 함수를 이용하는 방법 2. 정규식 함수를 이용하는 방법 TO_CHAR 함수를 이용하는 방법 SELECT TO_CHAR(10000000000, 'FM999,999,999,999') AS MONEY FROM DUAL; 천단위 콤마(,)를 표현하기 위해서는 TO_CHAR 함수의 두 번째 인자값을 이용하면 된다. TO_CHAR 함수를 이용해서 천단위를 표현하면 첫 번째 인자값보다 더 큰 길이의 두 번째 인자값을 미리 작성해야한다..

오라클 디비링크 (DB LINK) 정의 및 생성 권한 부여

디비링크 (DB LINK) 정의 데이터베이스 링크는 오라클 서버들끼리 디비 링크를 만들어서 하나의 데이터베이스처럼 사용하는 방법이다. 좀 더 정확하게 말하자면 데이터베이스 서버에서 다른 데이터베이스 서버로의 단방향 통신경로를 정의하는 포인터이다. 데이터베이스 링크에는 2가지 종류가 존재한다. 1. PUBLIC 데이터베이스 링크 특정한 설정없이 모든 사용자가 사용할 수 있어서 편리함 비교적 보안에 취약함 2. PRIVATE 데이터베이스 링크 각각의 사용자에게 디비 링크를 생성해줘야함 비교적 보안에 우수함 디비링크 조회 SELECT * FROM DBA_DB_LINKS; -- 현재 DB 환경의 모든 DB 링크 조회 SELECT * FROM USER_DB_LINKS; -- 현재 조회된 유저가 생성한 디비링크 조..

오라클 해당 날짜 요일 구하기 (TO_CHAR 함수)

프로그래밍을 하다보면 해당 날짜에서 요일이 필요한 경우가 생기는데요. 오라클에서는 TO_CHAR 함수를 이용해서 쉽게 해당 날짜의 요일을 알 수 있습니다. 그 방법에 대해서 알아보겠습니다. TO_CHAR(날짜, '포맷'); TO_CHAR 함수를 이용해서 해당 날짜의 요일을 구할 때 사용하는 포맷의 종류는 총 3가지가 있다. day : 일요일, 월요일, 화요일, 수요일, 목요일, 금요일, 토요일 dy : 일, 월, 화, 수, 목, 금, 토 d : 1 ~ 7 (요일을 숫자로 출력) SELECT TO_CHAR(SYSDATE, 'DAY') FROM DUAL; # 토요일 SELECT TO_CHAR(SYSDATE, 'DY') FROM DUAL; # 토 SELECT TO_CHAR(SYSDATE, 'D') FROM D..

오라클 중복 데이터 쉽고 빠르게 찾는 방법 (GROUP BY, OVER)

안녕하세요. 프로그래머 두부입니다. 일을 하다보면 중복 데이터를 찾아야하는 경우가 생기는데요. 쉽고 빠르게 찾을 수 있는 방법이 없을까요? 오라클에서는 중복 데이터를 찾기 위해서 GROUP BY 절과 집계 함수를 이용하는 방법과 OVER 절과 분석 함수를 이용하는 방법 총 2가지가 있습니다. 지금부터 어떻게 사용하는 것인지 알아보겠습니다. 1. 집계 함수를 이용하는 방법 (GROUP BY 절) 2. 분석 함수를 이용하는 방법 (OVER 절) 위의 예시 데이터에서 HIREDATE 컬럼이 중복된 데이터를 찾아보겠습니다. 집계 함수를 이용하는 방법 (GROUP BY 절) SELECT HIREDATE , COUNT(*) AS CNT FROM JOB_TABLE GROUP BY HIREDATE HAVING COUN..

오라클 간단하고 짧은 조건함수 DECODE 함수 사용 방법

오라클 쿼리를 작성하다보면 조건을 요구하는 상황이 생긴다. 대표적으로 IF문이 있는데 오라클에서 사용하면 쿼리문이 길어질 수 밖에 없다. 이번 포스팅에서는 쿼리문이 짧아지고 간단하게 사용할 수 있는 DECODE 함수를 소개하겠다. 오라클에만 존재하는 함수이므로 SQL에서는 사용할 수 없다. 함수 사용 방법 DECODE(컬럼, 조건, TRUE 결과, FALSE 결과) DECODE 함수 사용 방법은 삼항식(컬럼 = 조건 ? TRUE : FALSE)과 비슷한 형식으로 매우 간단하다. SELECT DECODE(USER_NM, '두부', 'YES', 'NO') AS USER_YN FROM TALBE_NAME 간단한 에제로 USER_YN 컬럼에 USER_NM 컬럼 값이 '두부' 일 때 'YES'를 출력, 아닐 시에..

오라클 ORA-28001: 비밀번호가 만기되었습니다. 오류 해결 방법

ORA-28001: 비밀번호가 만기되었습니다. 오라클 11버전부터는 비밀번호 유효기간이 180일로 설정되어있다. 비밀번호를 변경해줌으로써 오류를 쉽게 해결할 수 있다. 계정 상태 확인하기 1. cmd를 열어서 아래 내용을 입력해서 dba 계정으로 로그인한다. sqlplus / as sysdba 2. 아래 내용을 입력하면 계정 상태를 알 수 있다. SELECT RESOURCE_NAME, LIMIT FROM DBA_PROFILES WHERE PROFILE='DEFAULT' AND RESOURCE_NAME='PASSWORD_LIFE_TIME'; 오류 해결 방법 ALTER USER 사용자ID IDENTIFIED BY 새로운 비밀번호; 새로운 비밀번호로 변경함으로써 오류가 해결된다. ALTER PROFILE DE..

오라클 결과값을 버림하여 출력하는 TRUNC 함수

TRUNC 함수 정의 결과값을 원하는 자릿수까지 버림하여 출력하는 함수 TRUNC(숫자, 자릿수) 자릿수 N: 소숫점 아래 N번째 자리까지 버림하여 출력 자릿수 -N: 버림하여 10의 N승 자리까지 출력 자릿수 0: 버림하여 1의 자리까지 표시 함수 자릿수 결과 TRUNC(12.3456, 2) 2 12.34 TRUNC(12.3456, 1) 1 12.3 TRUNC(12.3456, 0) 0 12 TRUNC(12.3456, -1) -1 10 TRUNC(12.3456, -2) -2 100

반응형