Ошибка Oracle Executemany typerror при наличии строк и целых чисел

#python #oracle

#python #Oracle

Вопрос:

Уже некоторое время пытаюсь заставить это работать, буду признателен за любую помощь. Я получил эту работу, просто используя execute после каждого нового dict, но для завершения требуется около 40 минут. Пытаюсь заставить executemany работать в надежде сократить время, которое требуется. Я также пытался выполнять значения (: 1, : 2, …)Любая помощь будет оценена.

Ошибка типа: ожидание объекта string или bytes (в инструкции executemany)

 #Connection established with variable name oraCurs...

def returnaDict():
    return {
    #46 fields
    'ID': '', # int
    'STATUS': '', # String
    #...
    #...
    }

#Query ran here

data = list()
for aFeature in query.features:
    newDict = returnaDict()
    newDict['ID'] = aFeature.attributes["ObjectID"]
    newDict['STATUS'] = aFeature.attributes["Status"]
    #...
    data.append(newDict)

oraCurs.executemany("""Insert into table (ID, STATUS, ...) Values (%s, %s,...)""", data)
oraCurs.execute('COMMIT')
  

Комментарии:

1. каков источник этих значений? файл, список, другая таблица ..?

2. Прочитайте документацию cx_Oracle о выполнении пакетных инструкций и массовой загрузке и попробуйте примеры, подобные github.com/oracle/python-cx_Oracle/blob/master/samples/… Затем постепенно изменяйте их в соответствии с вашими данными.

3. Источником является другая таблица