본문 바로가기

코딩, 엑셀

파이썬으로 오라클 DB 접속하기


리눅스 서버에서 파이썬으로 오라클DB에 접속해서 데이터를 추출해야할 일이 생겼다. MySQL DB를 접속할때는 pymysql 라이브러리를 사용하면 되었는데 오라클은 cx_Oracle 라이브러리를 설치해야 한다고 하네요. 다음과 같이 설치합니다.

 

sudo python3 -m pip install cx_Oracle --proxy=http://www.example.com:8888 --upgrade

 

프락시 서버는 필요할때만 명시하면 됩니다.

프락시 서버 정보는 아래와 같이 명령하면 마지막 부분에서 확인할 수 있습니다.

 

cat /etc/profile

 

이렇게 하면 cx_Oracle 라이브러리는 설치가 되는데 실제로 실행하면 다시 오류가 납니다. Oracle Instant Client 를 설치해야 하는데요, 오라클 사이트에 접속해서 회원가입을 한 다음에 설치를 하면 됩니다. 

 

https://oracle.github.io/odpi/doc/installation.html#linux

 

ODPI-C Installation — ODPI-C v3.2.0

To use ODPI-C in your own project, download its source from GitHub. A sample Makefile is provided if you wish to build ODPI-C as a shared library. Otherwise, add the ODPI-C source code to your project. On Windows, Visual Studio 2008 or higher is required.

oracle.github.io

저는 64-bit 버전으로 이동해서 instantclient-basic-linux.x64-19.3.0.0.0dbru.zip 파일을 설치했어요.

 

https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

 

Instant Client for Linux x86-64 (64-bit)

Instant Client Installation for Linux x86-64 (64-bit) For general Instant Client information, see the Home Page. ODBC users should follow the ODBC Installation Instructions. Instant Client RPMs are also available without click-through from yum.oracle.com f

www.oracle.com

아래는 오라클DB접속하는 테스트 코드입니다.

import cx_Oracle

dsn = cx_Oracle.makedsn("a.b.com", 1521, "SID이름")
conn = cx_Oracle.connect(아이디, 비번, dsn)

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

Only I can change me life, no one can do it for me. – Carol Burnett