Избиение моей головы на столе.python cx_Oracle cursor возвращает строки для действительного запроса
Мой курсор cx_Oracle не возвращает строк для действительного запроса, и я не могу понять, почему.
То же соединение возвращает ожидаемые результаты из других таблиц в той же схеме ... например, если я просто изменяю имя таблицы ссылок в запросе от TABLE_A до TABLE_B, оно отлично работает.
Запрос отлично работает в SQL Developer/SQL Plus с использованием той же строки пользователя/соединения. Я скопировал/вставлял из cursor.statement во время отладки, чтобы проверить точно такой же оператор, никаких опечаток.
Я сократил запросы до самой простой формы;
1. select * from SCHEMA.TABLE_A
и
2. select * from SCHEMA.TABLE_B
запрос 1 возвращает нет строки, когда выполняется с использованием cx_Oracle, но возвращающие ожидаемые строки в SQLPlus/SQL Developer и т.д.
Запрос 2 работы, как ожидается, используя cx_Oracle
Я проверял привилегии - но это, очевидно, работает, поскольку я использую (и проверял), что пользователь/соединение тот же самый в cx_Oracle, что и в инструментах SQL.
код не может быть уменьшена/упрощена больше я не думаю, чтобы локализовать проблему - но я, вероятно, быть слепым к чему-то действительно очевидное:
import cx_Oracle
db_conn=cx_Oracle.connect('user/[email protected]:1521/TEST_PDB')
cur = db_conn.cursor()
qry = 'select * from SCHEMA_NAME.TABLE_A'
cur.execute(qry)
{cx_Oracle.Cursor на {cx_Oracle .Connection пользователю @ lokalny_host: тысяча пятьсот двадцать одна/TEST_PDB}}
cur.fetchall()
[]
cur.rowcount
Тем не менее, другая таблица/запрос работает:
qry = 'select * from SCHEMA_NAME.TABLE_B'
cur.execute(qry)
cur.fetchall()
[(12320573611891L, '23 .5.2126981' , 0, 'NEW' , 'UPDATE', datetime.datetime (2016, 5, 24, 9, 0), 48, 0, None, None)]
Это ТОЛЬКО таблица, с которой я столкнулся с этой проблемой, - которую я знаю до сих пор.
Я использую Oracle 12c, питона 2.7.11 64bit и ojdbc6.jar, и 64-битную InstantClient
Любые идеи? Что-нибудь, где мои глаза или мозг просто не видят очевидного?
Каковы фактические названия таблиц? * Таблица_A * может быть [зарезервированное слово Oracle] (https://docs.oracle.com/cd/B19306_01/em.102/b40103/app_oracle_reserved_words.htm)? – Parfait