cx_Oracle (또는 일반적으로 Oracle)에서 각 쿼리에 대해 커서를 할당하거나 여러 쿼리에 커서를 재사용 할 수 있습니까?커서 재사용과 새 커서 작성의 단점은 무엇입니까?
def getSomeData(curs): # case 1: pass in a cursor, which is generally
curs.execute('select ...') # reused across queries
return curs.fetchall()
def getSomeData(conn): # case 2: pass in a connection,allocate
curs=conn.cursor() # a cursor for this query
curs.execute('select ...')
return curs.fetchall()
물론 두 접근법 모두 동일한 데이터를 반환합니다.
두 가지 접근 방식 간의 장단점은 무엇입니까? 특히 효율성이 어느 정도입니까? 커서가 여러 쿼리에 재사용 될 수있는 잠재적 인 함정이 있습니까?