在我的桌子上敲打我的頭。python cx_Oracle遊標不會返回有效查詢的行
我的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作爲使用cx_Oracle
預期時執行,但是在sqlplus/SQL開發人員返回預期的行等查詢2名的作品沒有行
我已經驗證了權限 - 但是顯然這是因爲我正在使用(和驗證)用戶/連接在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 ■連接到用戶@本地:1521/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 64位,而ojdbc6.jar,和64位InstantClient
任何想法? 發現任何我的眼睛或大腦只是看不到明顯的東西嗎?
表的實際名稱是什麼? * Table_A *可能是[Oracle保留字](https://docs.oracle.com/cd/B19306_01/em.102/b40103/app_oracle_reserved_words.htm)? – Parfait