Hi zusammen,
Ich versuche gerade mit jaydebeapi einen CLOB der ein XML enthält aus einer DB2 zu entladen.
Das klappt soweit auch alles wenn ich
row = cursor.fetchone() verwende und dann den inhalt vom CLOB lese.
mit einem Fetchall und dann auslesen komme ich immer wieder in das Problem: "Lob is closed."
Das war der sample code:
hat aber null geholfen auch mit Autocommit off etc ist der LOB geschlossen.
Ich überlege nun 1 Statement um die ID's vom resultset zu holen und dann durch die alle zu loopen und halt indiv. Queries absetzten die dann je 1 LOP abzieht.
Hatte jemand schon mal so ein Issue und das mit fetchall doch lösen können?
Ich versuche gerade mit jaydebeapi einen CLOB der ein XML enthält aus einer DB2 zu entladen.
Das klappt soweit auch alles wenn ich
row = cursor.fetchone() verwende und dann den inhalt vom CLOB lese.
mit einem Fetchall und dann auslesen komme ich immer wieder in das Problem: "Lob is closed."
Das war der sample code:
Python:
try:
# Disable auto-commit to manually manage transactions
conn.jconn.setAutoCommit(False)
# Execute SQL query to fetch LOB data
cursor.execute("SELECT id, xml_clob_column FROM your_table")
rows = cursor.fetchall()
# Process each row immediately within the transaction
for row in rows:
record_id, xml_clob = row
# Ensure the LOB is accessed before any commit or close
if xml_clob:
xml_content = xml_clob.getSubString(1, int(xml_clob.length()))
print(f"XML content for record {record_id}: {xml_content}")
# Commit the transaction after all LOB data has been safely processed
conn.commit()
hat aber null geholfen auch mit Autocommit off etc ist der LOB geschlossen.
Ich überlege nun 1 Statement um die ID's vom resultset zu holen und dann durch die alle zu loopen und halt indiv. Queries absetzten die dann je 1 LOP abzieht.
Hatte jemand schon mal so ein Issue und das mit fetchall doch lösen können?