리눅스 서버에서 파이썬으로 오라클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
저는 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
아래는 오라클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()