반응형
Python multiprocessing and database access with cx_oracle “is not safe”?
파이썬 멀티프로세싱을 사용할때 오라클 연동을 할 수 없는걸까?
기존 방식대로 multiprocessing 의 pool 을 사용하려 했지만 cx_oracle 과 같이 쓰려면 아래의 에러가 계속 뜬다.
can't pickle cx_oracle._error objects
몽고DB와 mysql 은 다중처리할 함수안에다가 연결인자를 넣으면 다중처리가 되는데
cx_oracle은 동일한 방식으로 해결을 못하고
import cx_Oracle
import os
os.putenv('NLS_LANG', '.UTF8')
LOCATION = r"C:/oracle/instantclient_11_2"
os.environ["PATH"] = LOCATION + ";" + os.environ["PATH"]
pool = cx_Oracle.SessionPool(아이디,패스워드,
'아이피:포트/스키마', min=2, max=5, increment=1, encoding="UTF-8")
# Acquire a connection from the pool
connection = pool.acquire()
# Use the pooled connection
cursor = connection.cursor()
for result in cursor.execute("select * from 테이블 "):
print(result)
# Release the connection to the pool
pool.release(connection)
# Close the pool
pool.close()
이런 방식을 이용하면 다중처리가 가능하다.
반응형
'oracle' 카테고리의 다른 글
Oracle 로우값을 컬럼으로 바꾸기 (하나의 컬럼으로 피봇) (0) | 2020.10.21 |
---|---|
oracle sequence 의 마지막 값 조회 (0) | 2020.10.07 |
ORA-01036: illegal variable name/number 잘못된 변수명/번호 | (0) | 2020.10.06 |
오라클 서버ip와 포트 쿼리 이용해서 알아내는법 (0) | 2020.10.05 |
댓글