#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. Источником является другая таблица