Nerdy

Python과 R을 이용한 Oracle SQL 접근 본문

SQL

Python과 R을 이용한 Oracle SQL 접근

뚱인데요? 2022. 6. 15. 18:20
728x90

Oracle SQL 작업을 파이썬과 R에서 작업을 할 수 있도록 설정하는 방법이다.

 

Tool Version

Python : 3.9.7

Python IDE : PyCharm

R : 3.6.3

 

Oracle SQL 접근을 하기 위해 먼저 사전작업을 해준다.

 

 

1. C드라이브에 OracleTest 폴더 생성

 

 

 

2. OracleTest 폴더에 dirver ojdbc6 저장

 

 

ojdbc6,jar 파일을 찾는 방법은 다음과 같다.

 

C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib

 

해당 경로를 복사한 뒤 ojdbc6,jar 파일을 복사하여 OracleTest 폴더에 붙여넣으면 된다. Oracle SQL 설치 당시 경로 default를 C드라이브로 설정하였으면 아마 찾을 수 있을 거다.

 

C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib

 

 

3. Oracle SQL scott 계정에서 table 생성

-- test table 생성

create table test_table(
    id varchar(50) primary key,
    pass varchar(30) not null, 
    name varchar(25) not null,
    age number(2)
);
 
insert into test_table values('hong', '1234', '홍길동', 35);
insert into test_table values('kim', '5678', '김길동', 45);
select * from test_table;
commit;

test_table 생성


1. R 연결하기

 

# R에서 Oracle SQL 연결

1. 패키지 설치

install.packages("rJava")
install.packages("DBI")
install.packages("RJDBC")

# 꼭 자바 path 설정 되어 있어야 한다.

# rJava 설치 안될 경우 아래 주석처리 된 코드 사용
# Sys.setenv(JAVA_HOME = "C:\\Program Files\\Java\\jdk1.8.0_311")
# install.packages("rJava")


2. 패키지 로딩
library(DBI)
library(rJava)
library(RJDBC)

# Drive 설정
drv <- JDBC("oracle.jdbc.driver.OracleDriver", "C:/OracleTest/ojdbc6.jar")

# 데이터베이스 연결
conn <- dbConnect(drv,"jdbc:oracle:thin:@//127.0.0.1:1521/xe", "scott", "tiger")

 

 

# SQL문 사용하여 잘 되는지 확인

# 테이블 조회
query = "select * from test_table"
dbGetQuery(conn, query)

# 내림차순 정렬
query = "SELECT * FROM test_table order by age desc"
dbGetQuery(conn, query)

# insert
query = "insert into test_table values('kang', '1234', '강감찬', 45)"
dbSendUpdate(conn, query)

# 수정된 레코드 조회
query = "select * from test_table where name = '강감찬'"
dbGetQuery(conn, query)

# name이 '홍길동'인 레코드 삭제
query = "delete from test_table where name = '홍길동'"
dbSendUpdate(conn, query)

2. Python 연결하기

 

# Oracle Instant Client 다운로드

 

Oracle Instant Client Downloads | Oracle 대한민국

 

 

 

해당 사이트 들어가서 'Instant Client fro Microsoft Windows (x64)' 클릭한 후 Basic Package version 다운로드하고 압축을 푼 파일을 C드라이브에 저장한다.

 

import cx_Oracle # 패키지 다운로드
import os

# 한글 지원 환경
os.putenv('NLS_LANG', '.UTF8')

# Path 설정
LOCATION = r"C:/instantclient_21_3"
os.environ["PATH"] = LOCATION + ";" + os.environ["PATH"]

# DB 연결
connect = cx_Oracle.connect("scott", "tiger", "localhost:1521/xe")
cs = connect.cursor()

 

사용하고 있는 파이참 IDE는 cx_Oracle 패키지 다운 받을 시 'cx-Oracle'를 입력해야 다운 받을 수 있다.

 

 

 

# SQL문 사용하여 잘 되는지 확인

# 데이터 추가(insert)
sql = "insert into py_table values('kang', '1234', '강감찬', 45)"
cs.execute(sql) # SQL 문

cs.execute("select * from py_table") # SQL 문

for i in cs: # data 보기
 print(i)
 
 
 # 전체 레코드 조회
sql = "select * from test_table"
cs.execute(sql)

for i in cs: # data 보기
 print(i)


# name 이 '홍길동'인 레코드 삭제
sql = "delete from test_table where name = '홍길동'"
cs.execute(sql)


# 사용 후 close
cs.close()
connect.commit()
connect.close()
728x90

'SQL' 카테고리의 다른 글

MySQL 한글 인코딩 설정하기  (0) 2022.10.27
Oracle SQL 함수 정리 : 날짜  (0) 2022.03.29
Oracle SQL 함수 정리 : 숫자  (0) 2022.03.29
Oracle SQL : TRANSLATE와 REPLACE 함수 차이점  (0) 2022.03.29
Oracle SQL 함수 정리 : 문자  (0) 2022.03.29