Я пытаюсь проанализировать несколько CSV и вставить их данные в таблицы с помощью cx_Oracle. У меня нет проблем со вставкой в таблицы с помощью execute, но когда я пробую ту же процедуру с executemany, я получаю сообщение об ошибке. Мой код, использующий выполнение, которое работает,
with open(key,'r') as file:
for line in file:
data = data.split(",")
query = "INSERT INTO " + tables[key] + " VALUES ("
for col in range(len(data)):
query += ":" + str(col) + ","
query = query[:-1] + ")"
cursor.execute(query, data)
но когда я заменяю его на
with open(key,'r') as file:
list = []
for line in file:
data = data.split(",")
list.append(data)
if len(list) > 0:
query = "INSERT INTO " + tables[key] + " VALUES ("
for col in range(len(data)):
query += ":" + str(col) + ","
query = query[:-1] + ")"
cursor.prepare(query)
cursor.executemany(None,list)
Я получаю «ValueError: слишком большие строковые данные» при попытке вставить в таблицу, в которой есть столбцы CLOB, а размер данных превышает 4000 байт. Executemany отлично работает, когда в таблице нет столбца CLOB. Есть ли способ указать cx_Oracle обрабатывать соответствующие столбцы как объекты CLOB при выполнении?