Как получить результат / обратную связь / количество строк / количество строк, затронутых запросом MERGE в фрагменте Python

Я использую cur.rowcount с запросом на обновление, и он работает нормально.

Когда я использую то же самое с запросом на слияние, он возвращает -1, даже если запрос слияния успешно обновляет много строк.

sql = 'merge blah bla..'
params = 'blah blah'
cursor.execute(sql,params)
print(cursor.rowcount)

Python 3.4 Oracle 11g


person pratish_v    schedule 27.07.2018    source источник
comment
просто из любопытства, не могли бы вы проверить с len(cur.fetchall()), возвращает ли оно значение?   -  person akash karothiya    schedule 27.07.2018
comment
Функции выборки @akashkarothiya работают только с запросами, возвращающими строки данных, даже если я попытаюсь выполнить это print (len (cur.fetchall ())) cx_Oracle.InterfaceError: not a query   -  person pratish_v    schedule 27.07.2018


Ответы (1)


Из определения http://cx-oracle.readthedocs.io/en/latest/cursor.html#Cursor.rowcount cur.rowcount возврат в случае (операторы вставки, обновления и удаления)

person Ambikeshwar Srivastava    schedule 27.07.2018
comment
stackoverflow.com/questions/1401328/ - person Ambikeshwar Srivastava; 27.07.2018
comment
SQL% ROWCOUNT не работает так, как вы думаете, при использовании с оператором MERGE. - person eaolson; 29.07.2018