python cx_Oracle cursor不返回有效查询的行

2024-09-28 18:49:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我的头撞在桌子上。在

我的cxu Oracle游标没有返回有效查询的行,我无法找出原因。在

同一连接从同一架构中的其他表返回预期结果。。。例如,如果我简单地将查询中被引用的表名从table_A更改为table_B,则可以正常工作。在

在使用相同的用户/连接字符串的sqldeveloper/sqlplus中,查询可以正常工作。我是从游标.语句在调试期间验证完全相同的语句,没有输入错误。在

我已将查询简化为最简单的形式

1. select * from SCHEMA.TABLE_A

以及

^{pr2}$

使用cx_Oracle执行查询1时不返回行,但在SQLPlus/sqldeveloper等中确实返回预期的行

查询2使用cx\u Oracle按预期工作

我有验证权限,但这显然是在工作,因为我使用(并验证)cx_Oracle中的用户/连接与SQL工具中的相同。在

代码再也不能简化了,我不认为是为了隔离问题,但我可能对一些非常明显的东西视而不见:

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)

{cx_Oracle.Cursor on {cx_Oracle.Connection to user@localhost:1521/TEST_PDB}}

cur.fetchall()

[]

cur.rowcount

0

但是,另一个表/查询可以工作:

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 )]

这是我迄今所知的唯一一个遇到此问题的表。在

我使用的是Oracle12c、Python2.7.1164bit、ojdbc6.jar和64位InstantClient

有什么想法吗? 发现我的眼睛或大脑看不到明显的东西吗?在


Tags: 用户fromdbschematable语句connselect
1条回答
网友
1楼 · 发布于 2024-09-28 18:49:18

我发现我对这个问题视而不见。在

记录没有提交。 我能够使用同一个用户查询插入它们的会话(sqldeveloper)中的记录。在

导致了“到底发生了什么” 我早该知道的。在

相关问题 更多 >