Oracle - python 연동

1 minute read

Oracle은 별로 쓰고싶지 않은데…  또…

이번엔 clob 데이터 문제… mssql의 데이터를 oracle로 옮겨야되는데… clob자료형이다. sql developer에서 insert query로 뽑아내서 옮기려고 하는데 clob라서 안된다. python으로 스크립트를 짜서 처리를 하려고 하는데~~

Oracle은 만만한 녀석이 아니다.

프로세스 진행상황을 순차적으로 기록하면

1. MS-SQL 연동(은 덤으로)

pymssql을 설치하니까 간단히 연동이 된다.

import pymssql

conn = pymssql.connect(server=’ipiphosthost’, user=’username’, password=’pwd_passwddddrd’, database=’dbnanmmnell’) cursor = conn.cursor() cursor.execute(‘SELECT top 100 * FROM prod’) row = cursor.fetchone() while row: print(str(row[0]) + “ “ + str(row[1]) + “ “ + str(row[2]) + “ “ + str(row[3])) row = cursor.fetchone()

바로 잘 돌아간다.

단, 내 컴퓨터에는

Visual Studio 2015, MSSQL(sql server 2008 r2)서버가 설치되어 있다. 조건이 다르다면 바로 안될수도 있다.

 

 

2. Oracle 연동

import cx_Oracle

PORT_NUM = 1521 dsn = cx_Oracle.makedsn(“SERVER_HOST”, PORT_NUM, “ORCLE_SID_NAME”) db = cx_Oracle.connect(“USERNAME”, “PASSWORD”, dsn) cursor = db.cursor()

cursor.execute(“"”SELECT * FROM sso_data.t_users where rownum < 100”””) row = cursor.fetchone() while row: print(str(row[0]) + “ “ + str(row[1]) + “ “ + str(row[2]) + “ “ + str(row[3])) row = cursor.fetchone()

샘플코드는 이렇다.

도큐먼트 : http://cx-oracle.readthedocs.io/en/latest/index.html

 

오라클답게 쉽게 설치되지 않는다. pip install cx_Oracle

pip로 설치후에 발견되는 에러 ImportError:DLL load failed:지정된 프로시저를 찾을 수 없습니다. InterfaceError:Unable to acquire Oracle environment handle

 

위에러가 자꾸 나와서.

oracle instant client설치 C:\oracle\instantclient_12_1 이 경로에 설치 해 주고 path 잡아줬다.

cx_Oracle 설치 https://pypi.python.org/pypi/cx_Oracle/5.2.1 여기서 받아다가 설치

설치할 때 32/64비트 그리고 파이썬 버전을 잘 맞춰야된다. 오라클 버전도..

며칠 지났다고 기억이 안나네