Re: [cx-oracle-users] Problem reading CLOB data from query result
Brought to you by:
atuining
From: Christopher J. <chr...@or...> - 2015-12-15 06:04:02
|
What's magic about 200 in your environment? What size LOBs? Do you really need to instantiate them all at once in records? What version of cx_Oracle? On 9/12/2015 9:10 am, Andrew Wheelwright wrote: > I’m new to cx_Oracle and am in the process of creating a python script to pull about 4,000 records from an oracle database for my company. The query > involved uses xmlagg to create two CLOB fields. I’m able to successfully fetch records one at a time and read the CLOB data for the first 200 records > of the query result but when I try to fetch the 201^st record I get an Invalid Handle error from cx_Oracle the context for which is > “LobVar_PreFetch(): free temporary LOB” (I don’t know whether that’s even useful information). > > My code uses the following logic: > > connection = cx_Oracle.connect('schema/password@server') > > cursor = connection.cursor() > > cursor.execute('my query') > > records = [] > > result = cursor.fetchone() > > while result is not None: > > record = {} > > for index, field in enumerate(result): # convert the result tuple to a dictionary object > > if field is not None and cursor.description[index][1] == cx_Oracle.CLOB: > > field = field.read() # get the CLOB value > > record[cursor.description[index][0]] = field > > records.append(record) > > result = cursor.fetchone() # <---- Invalid handle error thrown here > > I suspect the problem I’m hitting is probably due to me going about handling large objects the wrong way so I appreciate any suggestions or > recommendations on better ways to do read CLOB data. > > I’m running python 3.5 on 64 bit Windows 7 > > Thank you for your help, > > Andrew Wheelwright > > > > ------------------------------------------------------------------------------ > > > > _______________________________________________ > cx-oracle-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users > -- http://twitter.com/ghrd |