Я пытаюсь использовать словарь в параметре для вызова хранимой процедуры, чтобы обновить таблицу, которая использует значение в Dict в качестве внешнего ключа.
Данные Dict (ID - это внешний ключ), например: server1, ID1 server5, ID2
ID - это внешний ключ в таблице, которую я пытаюсь обновить, и должен быть параметром при вызове.хранимая процедура.Похоже, что когда я передаю словарь в качестве параметра, он тянет server1 вместо ID1 и вызывает ошибку ключа.
with open('DBstatus.csv') as dbcsvfile:
dbstatus = csv.DictReader(dbcsvfile)
for row in dbstatus:
#Create parameters for stored procedure
guardpointparams = (row['FS Agent Registration Status'], row['FS Agent Version'], row['Guard Path'], serverdict[row['Host Name']], policydict[row['Policy Name']], 0)
#call stored procedure
updateguardpointstable = cursor.callproc('update_guardpoints', guardpointparams)
#i created the dictionary from a different script while updating the
"servers" table where the DB is creating the returnvalue (ID) from the
stored procedure see sample below:
serverdict[row['Host Name']] = returnvalue[3]
Трассировка: guardpointparams = (строка ['Статус регистрации агента FS'], строка ['Версия агента FS'], строка ['Путь защиты'], serverdict [строка ['Имя хоста']], policydict [row ['Policy Name']], 0) KeyError: 'server1'