파이썬으로 Oracle 데이터베이스 연결하기

By | 2014/04/11

파이썬으로 BerkelyDB, MySQL은 연결해봤어도 Oracle 데이터베이스는 연결해 본 적이 없다.
사실 정확하게 말하자면 Oracle Database가 따로 있는지도 몰랐다.
특정 DB가 필요해서 관련 부서로부터 받은 DB정보에, DB는 Oracle을 쓴다고 적혀있길래 당연히 MySQL을 말하는 줄 알았다.

import MySQL

당연히 접속이 안되지. 설마 싶어서 찾아보니 정말 Oracle 데이터베이스가 있다.

그럼 이제 파이썬에서 Oracle 데이터베이스 모듈을 설치하고 사용하는 방법을 구글링하는데, 이 여정이 그리 만만치는 않다.
파이썬용 Oracle 데이터베이스 모듈이름은 cx_Oracle 이다. 이를 설치하고 사용하는 방법에 대해 알아보자.

1-1) 윈도우에서 cx_Oracle 설치
- http://cx-oracle.sourceforge.net/ 에서 각자의 데이터베이스 버전, 파이썬 버전, 운영체제 버전에 맞는 Installer를 다운받는다.
- 윈도우용 설치이므로 아주 손쉽게 설치 완료!

import cx_Oracle

- 아쉽게도 ImportError: DLL load failed 에러메시지가 출력되었다.
- 이렇게 되면 Oracle 데이터베이스를 다운받아 설치하고, 설치된 폴더에 있는 oci.dll 파일을 파이썬이 설치된 폴더의 Lib/site-packages 경로에 복사해넣어야 한다.

참고 URL: http://www.databaseskill.com/4169452/

1-2) 우분투에서 cx_Oracle 설치
http://csgeek-random.blogspot.kr/2013/04/installing-python-cxoracle-on-ubuntu.html 참고

2) 파이썬에서 cx_Oracle 모듈 사용 예제

import cx_Oracle
dsn = cx_Oracle.makedsn("HOST", PORT_NUMBER, "DB_NAME")
db = cx_Oracle.connect("ID", "PASSWORD", dsn)
cursor = db.cursor()

cursor.execute("""SELECT * FROM TABLE_NAME""")
row = cursor.fetchone()