在这张桌子上把头撞到我的桌子上。
我的cx_Oracle游标没有为有效查询返回任何行,我无法弄清楚原因。
同一连接返回同一模式中其他表的预期结果...例如,如果我只是将查询中引用的表名从TABLE_A更改为TABLE_B,则它可以正常工作。
使用相同的用户/连接字符串,SQL Developer / SQL Plus中的查询工作正常。我在调试期间从cursor.statement复制/粘贴以验证完全相同的语句,没有拼写错误。
我已将查询缩减为最简单的形式;
<body>
<third-party-angular-app>
<third-party-component>
<my-angular-app>
</my-angular-app>
</third-party-component>
</third-party-angular-app>
</body>
和
1. select * from SCHEMA.TABLE_A
使用cx_Oracle执行时,查询1不返回任何行,但是在SQLPlus / SQL Developer等中返回预期的行。
查询2使用cx_Oracle
按预期工作我已经验证了权限 - 但这显然有效,因为我正在使用(并验证)cx_Oracle中的用户/连接与SQL工具中的相同。
代码无法再减少/简化我不认为可以解决问题 - 但我可能对一些非常明显的事情视而不见:
2. select * from SCHEMA.TABLE_B
{cx_Oracle.Cursor on {cx_Oracle.Connection to user @ localhost:1521 / TEST_PDB}}
import cx_Oracle
db_conn=cx_Oracle.connect('user/password@localhost:1521/TEST_PDB')
cur = db_conn.cursor()
qry = 'select * from SCHEMA_NAME.TABLE_A'
cur.execute(qry)
[]
cur.fetchall()
0
然而,其他表/查询有效:
cur.rowcount
[(12320573611891L,&#39; 23.5.2126981&#39;,0,&#39; NEW&#39;,&#39; UPDATE&#39;,datetime.datetime(2016,5,24,9, 0),48,0,无,无)]
这是我遇到此问题的唯一表格 - 我目前所知道的。
我使用的是Oracle 12c,python 2.7.11 64位,以及ojdbc6.jar和64位InstantClient
有什么想法吗? 发现我的眼睛或大脑没有看到明显的东西?
答案 0 :(得分:0)
我想出了我对这个问题视而不见的地方。
记录未通过。 我能够使用相同的用户查询我插入它们的会话中的记录(SQL Developer)。
导致&#34;发生了什么&#34; 我应该知道/更好。