В настоящее время я получаю пару ошибок с моей вставкой, используя cx_Oracle для python 3.6
ORA-01036: illegal variable name/number
и
ORA-01745: invalid host/bind variable name
Вот мой код:
def load_wp_sql(self, wp_dict):
self.db.begin()
cursor = self.db.cursor()
sql = """INSERT INTO work_package_work_table
(CONTROL_ACCOUNT, CONTROL_MANAGER, WP_MANAGER,
TITLE, WORK_STATEMENT, TYPE,
RISK_MITIGATION_SCOPE)
VALUES
(:control_account, :cam, :wp_manager,
:wp_title, :statement_of_work,
:wp_type, risk_mitigation_scope)
"""
try:
for wp in wp_dict:
cursor.prepare(sql)
cursor.execute(None, wp)
self.db.commit()
except cx_Oracle.DatabaseError as e:
self.db.rollback()
Это словарь, который я пытаюсь связать, он передается в функцию как объект-генератор.
{
'cam': 'CA Manager',
'control_account': 'W80.11.11.01.LL',
'risk_mitigation_scope': 'No',
'statement_of_work': 'For setup and maintainance of of the W80 EVMS Tools',
'wp_manager': 'cohagan1',
'wp_title': 'EVMS Tools',
'wp_type': 'Discrete'
}
Я просмотрел довольно много сообщений от stackoverflow:
Переменные связывания Python cx_Oracle
Ошибка базы данных: ORA-01036: недопустимое имя / номер переменной
а также их документация: https://www.oracle.com/technetwork/articles/dsl/prez-python-queries-101587.html
Я почти уверен, что упускаю что-то простое, но, кажется, не могу его найти.