Как посмотреть, какие строки были добавлены с помощью Django connection.cursor.execute ()? - PullRequest
0 голосов
/ 11 октября 2019

У меня есть этот код 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.

Здесь сказано:

enter image description here

...