У меня есть этот код Python ...
sql = """
INSERT INTO app_table(...cols..)
SELECT DISTINCT ... cols ... FROM app_temptable e
WHERE something = 'Generic' AND NOT EXISTS
(SELECT id FROM app_table u WHERE e.somethingelse = u.somethingelse);
"""
try:
with connection.cursor() as cursor:
cursor.execute(sql)
log.info( '%s rows inserted.' % cursor.rowcount)
for row in cursor.fetchall():
print(row)
except Exception as ex:
err = ex
log.error("sql: %s" % sql)
raise err
... он печатает количество строк, а затем выдает исключение:
django.db.utils.InterfaceError: not a query
Я думаю, потому что я не былделать выбор. Но в документации Django (https://docs.djangoproject.com/en/2.2/topics/db/sql/) сказано, что для получения уязвимых строк вызывается cursor.fetchall()
.
Так как мне вставить затронутые / строки? Я использую базу данных Oracle.
Здесь сказано: