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