Python : jdbc로 Database(Oracle) 접근하기

Data Analysis/Python|2015.12.03 00:22

데이터 분석을 하다보면 당연히 다양한 데이터 소스에 접근하게 된다.

파일, 엑셀, 그리고 데이터베이스 까지... 이번에는 JDBC 로 데이터 접근을 하여 pandas의 Dataframe로 변경해봄



import os
import sys
import jpype
import jaydebeapi as jp
import pandas.io.sql as pd_sql
from pandas import DataFrame

# JAVA_HOME이 설정되어 있지 않을 경우 
if("JAVA_HOME" not in os.environ):
    os.environ["JAVA_HOME"] = "[JAVA_HOME path]"
    
# oracle jdbc 파일 경로 및 class 경로 설정
JDBC_Driver = '[jdbc Driver path]/ojdbc6.jar'
jar = r'[jdbc Driver path]/ojdbc6.jar'
args = '-Djava.class.path=%s' % jar

# 환경 변수 출력
print('Python Version : ', sys.version)
print('JAVA_HOME : ', os.environ["JAVA_HOME"])
print('JDBC_Driver Path : ', JDBC_Driver)
print('Jpype Default JVM Path : ', jpype.getDefaultJVMPath())

# java class path 설정
jpype.startJVM(jpype.getDefaultJVMPath(), args)

# oracle 접근
conn = jp.connect('oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:[user]/[password]@[oracle ip]:[oracle poart]/[sid]', JDBC_Driver)
cur = conn.cursor()

# Select Query 실행
sql = "SELECT * FROM TEST"
pd_sql.execute(sql, conn)
df = pd_sql.read_sql(sql, conn, index_col = None)

print df.head()

실행 결과 아래와 같다


('Python Version : ', '2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)]')
('JAVA_HOME : ', 'D:/Program Files/Java/jre1.8.0_45')
('JDBC_Driver Path : ', 'E:/9. Util/90.DB Driver/ojdbc6.jar')
('Jpype Default JVM Path : ', 'D:\\Program Files\\Java\\jre1.8.0_45\\bin\\server\\jvm.dll')
   PID USER_ID USER_PWD SEX
0    1   test1    test1   M
1    2   test2    test1   M
2    3   test3    test1   M
3    4   test4    test1   F
4    5   test5    test1   F

댓글()
  1. BlogIcon jaejin 2017.12.06 15:32 댓글주소  수정/삭제  댓글쓰기

    질문이 있습니다! 파이썬은 2.x 버전인가요?