오라클 데이터베이스(Oracle Database) 11g 삭제하기

 

   1. 내컴퓨터 (우클릭) -> 관리 -> 서비스 및 응용프로그램 -> 서비스 -> Oracle 로 시작하는 모든 프로그램 중지

  

2. 시작->실행->regedit 적고-> 레지스트리 편집기에서 아래 레지를 지우기 

아래 폴더 안에 해당 레지가 존재하지 않는다면 무시

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services 
에서 Oracle이라 시작하는 모든  삭제

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services 
에서 Oracle이라 시작하는 모든  삭제
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 
에서 Oracle이라 시작하는 모든 

 

3. 내컴퓨터 (우클릭) -> 속성 -> 고급시스템설정 ->고급 -> 환경변수 -> 시스템 변수 아래에 있는 Path 편집

변수값에서 D:\app\product\11.2.0\dbhome_1\bin (사용자 컴퓨터에 따라 다를 수 있음)라 되어있는 내 DBhome bin 변수값을 삭제

 

4. C드라이브 -> Program files -> Oracle -> inventory 삭제

Oracle 폴더안에 inventory만 있다면 Oracle 폴더 전체 삭제

 

5. DB 폴더 삭제

만약 DB폴더가 D드라이버에 있는 app폴더에 저장되어 있으면이 폴더 전체를 삭제

 

블로그 이미지

요다할아범

,

오라클에 붙어서 작업하려면 클라이언트를 설치해야 한다. 매번 PC를 포멧할 때마다 해줘야 하는작업인데 여간 귀찮은 작업이 아니다. 이를 극복할 수 있는 방법이 있는데, 오라클 인스턴트 클라이언트를 받아서 사용하면 된다.

다음 링크에서 인스턴트 클라이언트를 다운받도록 한다.


아래와 같은 화면에서 자신이 사용하는 O/S에 맞는 버전을 클릭하도록 한다. 나는 윈도우 32비트를 쓰기에 파란 링크를 눌러 다운받았다.

인스턴트 클라이언트 다운로드


그러면 버전별로 다운받을 수 있는 링크가 나타난다. 약관에 동의하고 Basic과 SQL*Plus를 다운받도록 한다. 과정중 계정을 입력해야 하는데, 오라클 사이트에 가입되어있지 않으면 가입을 먼저 해야한다. 기억상으로는 가입시 ID, 이메일, 패스워드 정도만 입력했던 것 같다.


그리고 특정 폴더에 압축을 푼다. 여기서는 D:\instantClient_11_2 에 풀도록 하겠다. 압축을 풀었으면 다음과 같이 환경변수를 잡아준다. 내 컴퓨터의 고급 설정에서 잡을 수 있다.

  • PATH = D:\instantClient_11_2 (기존 PATH변수에 추가)
  • ORACLE_HOME = D:\instantClient_11_2
  • TNS_ADMIN = D:\instantClient_11_2
  • NLS_LANG = KOREAN_KOREA.KO16MSWIN949


다 되었으면 TNSNAMES.ORA 파일을 TNS_ADMIN으로 잡은 폴더(D:\instantClient_11_2)에 복사해서 넣는다. 그러면 SQL*Plus와 다른 DB툴로 붙는 것을 확인할 수 있다.

블로그 이미지

요다할아범

,

lengthb( to_char(CLOB_FIELD ) )

블로그 이미지

요다할아범

,

안녕하세요?

한번의 query로 도저히 될지 안될지 알수가 없어서 여러 님들께 질문 드립니당..
데이터의 순위를 1,2,3위를 계산하고요..
1,2,3위 이외의 나머지는 합계로 계산해야 하는 형식인데요..
어떤식으로 처리 해야 할지요?
데이터의 예는 
구분 부품명 업체
A01 AA A
A01 AA B
A01 AA B
A01 AA B
A01 BB A
A01 BB A
A01 BB A
A01 BB A
A01 CC A
A01 CC B
A01 CC C
A01 CC A
A01 DD A
A01 DD C
A01 DD C
A01 DD C
A01 DD C
A01 DD D
A01 EE D
A01 EE D
A01 EE D
A01 EE D
A01 EE D
A01 EE C
A01 EE C
B01 AA A
B01 AA A
B01 AA B
B01 AA B
B01 AA A
B01 AA A
B01 BB C
B01 BB D
B01 BB D
B01 BB D
B01 BB D
B01 BB D
B01 CC A
B01 CC A
B01 CC B
B01 DD B
B01 DD C
B01 DD D
B01 DD A
B01 DD A
B01 DD B
B01 DD B
B01 DD C
B01 DD D
B01 EE D
B01 EE A
이런 식이구요...
나와야 하는 값은..

구분 No 부품명 업체 건수 비율
A01 1 EE D 5 20.00%
A01 2 BB A 4 16.00%
A01 2 DD C 4 16.00%
A01 기타     12 48.00%
  합계     25 100%
B01 1 BB D 5 19.23%
B01 2 AA A 4 15.38%
B01 3 DD B 3 11.54%
B01 기타     14 53.85%
  합계     26 100%

이렇습니당...

어떤 식으로 접근해야 할까요?
row_number() over (partition by  구분   order by  COUNT(*) DESC) row_num 이렇게
해서 row number구하고 count하고 했는데 잘 안되내요..

고수님들 부탁 드려용~~

추 천 글 등 록 목록보기 

댓글 목록
  • ET [2011년 06월 22일 13시]

    WITH T AS 
    ( 
    SELECT 'A01' CD, 'AA' A, 'A' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'AA' A, 'B' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'AA' A, 'B' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'AA' A, 'B' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'BB' A, 'A' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'BB' A, 'A' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'BB' A, 'A' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'BB' A, 'A' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'CC' A, 'A' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'CC' A, 'B' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'CC' A, 'C' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'CC' A, 'A' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'DD' A, 'A' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'DD' A, 'C' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'DD' A, 'C' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'DD' A, 'C' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'DD' A, 'C' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'DD' A, 'D' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'EE' A, 'D' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'EE' A, 'D' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'EE' A, 'D' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'EE' A, 'D' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'EE' A, 'D' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'EE' A, 'C' B FROM DUAL UNION ALL 
    SELECT 'A01' CD, 'EE' A, 'C' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'AA' A, 'A' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'AA' A, 'A' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'AA' A, 'B' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'AA' A, 'B' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'AA' A, 'A' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'AA' A, 'A' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'BB' A, 'C' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'BB' A, 'D' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'BB' A, 'D' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'BB' A, 'D' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'BB' A, 'D' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'BB' A, 'D' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'CC' A, 'A' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'CC' A, 'A' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'CC' A, 'B' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'DD' A, 'B' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'DD' A, 'C' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'DD' A, 'D' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'DD' A, 'A' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'DD' A, 'A' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'DD' A, 'B' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'DD' A, 'B' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'DD' A, 'C' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'DD' A, 'D' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'EE' A, 'D' B FROM DUAL UNION ALL 
    SELECT 'B01' CD, 'EE' A, 'A' B FROM DUAL 
    ) 
    SELECT CD, 
    CASE WHEN GROUPING(RN) !=0 THEN '합계' 
    ELSE CASE WHEN RN > 3 THEN '기타' 
    ELSE TO_CHAR(MAX(NO)) 
    END 
    END NO, 
    CASE WHEN GROUPING(RN) = 0 AND RN <= 3 
    THEN MAX(A) 
    END A, 
    CASE WHEN GROUPING(RN) = 0 AND RN <= 3 
    THEN MAX(B) 
    END B, 
    SUM(CNT) CNT, 
    TO_CHAR(SUM(RT)*100,'FM990.00')||'%' RT 
    FROM ( 
    SELECT CD, 
    A, 
    B, 
    COUNT(*) CNT, 
    RANK() OVER (PARTITION BY CD ORDER BY COUNT(A||B) DESC) NO, 
    CASE WHEN ROW_NUMBER() OVER (PARTITION BY CD ORDER BY COUNT(A||B) DESC,B) > 3 THEN 4
    ELSE ROW_NUMBER() OVER (PARTITION BY CD ORDER BY COUNT(A||B) DESC,B) END RN, 
    RATIO_TO_REPORT(COUNT(*)) OVER (PARTITION BY CD) RT 
    FROM T 
    GROUP BY CD,A,B 
    ) 
    GROUP BY CD,ROLLUP(RN)

블로그 이미지

요다할아범

,

오라클 테이블을 생성 할 때 각 컬럼에 지정 할 수 있는 데이터 타입들 입니다.

DATA TYPE

설 명

VARCHAR2(n)

가변 길이 문자 데이터(1~4000byte)

CHAR(n)

고정 길이 문자 데이터(1~2000byte)

NUMBER(p,s)

전체 p자리 중 소수점 이하 s자리(p:1~38, s:-84~127)

DATE

7Byte(BC 4712년 1월 1일부터 AD 9999년 12월 31일)

LONG

가변 길이 문자 데이터(1~2Gbyte)

CLOB

단일 바이트 가변 길이 문자 데이터(1~4Gbyte)

RAW(n)

n Byte의 원시 이진 데이터(1~2000)

LONG RAW

가변 길이 원시 이진 데이터(1~2Gbyte)

BLOB

가변 길이 이진 데이터(1~4Gbyte)

BFILE

가변 길이 외부 파일에 저장된 이진 데이터(1~4Gbyte)



문자 데이터(Character Data)


- 문자 데이터는 데이터베이스에 고정 길이, 또는 가변 길이 문자열로 저장될 수 있습니다.

- CHAR와 NCHAR같은 고정 길이 문자 데이터 유형은 고정 길이까지 공백으로 채워서 저장합니다.

- NCHAR는 고정 폭(fixed-width), 또는 가변 폭(variable-width) character set의 저장을
가능하게 하는 NLS 데이터 유형입니다.
최대 크기는 한 문자를 저장하는데 필요한 바이트 수에 따라 결정되며 한 행 당 2000 바이트가 상한입니다.
기본값은 charater set에 따라 1 문자, 또는 1 바이트입니다.

- 가변 길이 문자 데이터 유형은 실제 컬럼 값을 저장하는데 필요한 바이트만큼만을 사용하며
각 행에 따라 그 크기가 다양합니다.
VARCHAR2와 NVARCHAR2 가 있습니다.


숫자 데이터(Numeric Data)

- 오라클 데이터베이스에서 숫자는 항상 가변 길이 데이터로 저장되며 유효 자릿수 38자리까지
저장할 수 있습니다.



날짜(DATE) 데이터 유형


- 오라클 서버는 날짜를 7 바이트, 고정 길이 필드(field)로 저장합니다.

- 오라클 DATE는 항상 시간을 포함합니다.



RAW 데이터 유형


- 크기가 적은 이진 데이터의 저장에 사용 합니다.



크기가 큰 오브젝트를 저장하기 위한 데이터 유형


크기가 큰 오브젝트를 저장하기 위한 데이터 유형에는 LONG과 LONG RAW, LOB데이터 유형이 있습니다.

LONG데이터 유형은 2GB의 문자열 데이터를 저장 할 수 있습니다.

③ 오라클은 LOB을 저장하기 위한 여섯 가지 데이터 유형을 제공합니다.

- 큰 고정 폭(fixed-width) 문자 데이터를 위한 CLOB과 LONG
- 큰 고정 폭 국가 character set 데이터를 위한 NCLOB
- 구조화되지 않은 데이터를 저장하기 위한 BLOB과 LONG RAW
- 구조화되지 않은 데이터를 운영 체제 파일에 저장하기 위한 BFILE


④ LONG과 LOB 데이터 유형 비교

LONG, LONG RAW

LOB

테이블에 컬럼 하나만 생성 할 수 있음

테이블에 여러개의 컬럼 생성이 가능

2GB

4GB

SELECT결과로 데이터를 리턴

SELECT결과로 위치를 리턴

데이터를 직접 저장

데이터를 직접 또는 간접 저장

오브젝트 유형을 지원하지 않음

오브젝트 유형 지원


블로그 이미지

요다할아범

,