cx_oracle获取游标数据,python - 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

使用cx_Oracle执行时,查询1不返回任何行,但是在SQLPlus / SQL Developer等中返回预期的行。

查询2使用cx_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,无,无)]

这是我遇到过这个问题的唯一表 - 我到目前为止都知道。

我使用的是Oracle 12c,python 2.7.11 64位,以及ojdbc6.jar和64位InstantClient

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值