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비트 그리고 파이썬 버전을 잘 맞춰야된다.
오라클 버전도..
며칠 지났다고 기억이 안나네