윈도우용 R 에서 오라클 DB 에 접속하는 방법
이번 테스트 환경은 윈도 7 (64비트) 에 설치된 64비트 R (3.0.2) 버전에서 물리적으로 다른 장비에 RHEL 5 버전에 설치된 Oracle 11g R2 에 버전에 접속하게 합니다.
이 실습을 하기 위해 윈도 PC 에는 Oracle client 가 설치되어 있고 tnsnames.ora 파일이 설정되어 있어 오라클 DB 와 접속이 잘된다고 가정하고 진행합니다.
만약 이 전제조건이 안될 경우 아래 내용도 안되므로 이 부분이 잘 되는지 확인 후 아래의 연결작업을 진행하세요.
확인방법은 윈도에서 cmd 창을 열어서 tnsping tns_name 해서 ok 나와야 합니다.
1. R 설치 (http://www.r-project.org/ 에서 다운받기)
2. 64비트 R 이므로 64-bit oracle data access components (ODAC) 를 다운로드 받아서 적당한 곳에 압축을 풉니다.
(http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html)
계약서에 동의하고 데이터베이스와 동일하거나 높은 버전을 다운로드 받아서 적당한 곳에 압축을 풉니다.
3. 설치할 때 윈도에 기존에 설치되어 있는 Oracle Client 와 동일한 경로에 설치하세요. 그래야 Oracle cleint 가 가지고 있던 설정을 그대로 가져옵니다.
경로가 바뀌면 기존 설정들을 가져오지 못해서 번거로워집니다.
4. ODAC 설치가 끝나면 제어판 → 시스템 및 보안 → 관리 도구 에 가서 데이터원본 (ODBC) 를 실행합니다.
5. 추가
6. 데이터원본설정할 드라이버 선택 Oracle in OraClient11g_home1
7. Test Connection
8. OK
접속이 정상적으로 되는 것이 확인되면 OK 버튼을 눌러 설정을 저장하세요.
위에서 생성한 testdb3 을 사용하여 R 에서 오라클로 접속하는 테스트를 계속 진행합니다.
R로 돌아와서 필요한 패키지인 "DBI", "RODBC" 를 설치합니다.
> install.packages("DBI")
> install.packages("RODBC")
> library(DBI)
> library(RODBC)
> db <- odbcConnect("testdb3") <- 이렇게 하면 암호를 입력하라는 창이 뜹니다.
# 만약 이렇게 하기 귀찮다면
# > db <- odbcConnect("testdb3", uid="scott", pwd="tiger")
> sqltest <- sqlQuery(db, "select * from emp")
> sqltest
> a <- sqltest$DEPTNO
> barplot(a)
위와 같이 Oracle DB 에 저장된 데이터를 불러와서 동일하게 작업할 수 있습니다.