2015년 6월 16일 화요일

cx_Oracle install ( python2.7.8 , oracle 10g, windows7 64bit )

- 64bit, python 2.7.8, oracle 10g, windows7


1. python 설치 ( 64bit )
  : python-2.7.8.amd64.msi
  
2. instantclient-basic-win64-10.2.0.5
  : 적당한 위치에 압축을 푼다.
 ※ http://www.oracle.com/technetwork/database/features/instant-client/index-100365.html

3. 환경변수에 python, instant client path 설정
 : 시스템속성 > 고급 > 환경변수 > 시스템변수 > Path
 ex) C:\Python27;C:\instantclient_10_2;

4. 테스트 코드

# coding=utf-8
import os
import cx_Oracle

os.putenv("NLS_LANG", "KOREAN_KOREA.AL32UTF8")
db_conf = {'db_user': 'userName', 'pw': 'userPassword', 'ip': '111.111.111.111', 'port': 1521, 'name': 'serviceName'}

conn = cx_Oracle.connect(db_conf['db_user'], db_conf['pw'], cx_Oracle.makedsn(db_conf['ip'], db_conf['port'], db_conf['name']))
cur = conn.cursor()

def getQueryResults(cur, sqlStr, params):
    if params is None:
        cur.execute(sqlStr)
    else:
        cur.execute(sqlStr, params)

    desc = [d[0] for d in cur.description]
    result = [dict(zip(desc, line)) for line in cur]
    print(result)
    return result

sql_str = """select a.column1, a.column2, a.column3  from test_table a  where a.column1 = 'test'"""
getQueryResults(cur, sql_str, None)
select_list = cur.fetchall()
print("select result cnt >>> %d" % cur.rowcount)

conn.commit()
cur.close()
conn.close()

댓글 없음: