我尝试使用以下变体:
SELECT * FROM "DB"."TABLE"
SELECT COUNT(1) FROM "DB"."TABLE"
SELECT reference FROM "DB"."TABLE"
SELECT reference FROM "DB"."TABLE" WHERE rownum < 2
其中reference是cx_Oracle.STRING类型的特定字段
所有这些都返回以下错误:
cx_Oracle.DatabaseError: ORA-01427: single-row subquery returns more than one row
我不明白为什么最后一个例子会返回一个抱怨返回多行的错误,也不知道为什么在任何一个例子中返回多行都是一个问题。
我在SO上看到了很多类似的问题,但它们都有嵌套的选择,我可以理解这是有问题的,但这些应该只是简单的选择。
该数据库是Oracle 11g企业版,它通过cx_Oracle python接口访问。
事实证明,我从中拉出的“表”实际上是一个数据库视图,一种伪表,它由sql连接在一起组成其他表。
错误实际上在视图中,而不是在我的SQL中,这是错误中引用的子查询的位置。感谢您在评论中的帮助!