ORA-01427: SELECT * FROM TABLE дает ошибку, однострочный подзапрос возвращает более одной строки - PullRequest
0 голосов
/ 04 сентября 2018

Я пытался использовать следующие варианты:

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 Enterprise Edition, доступ к ней осуществляется через интерфейс Python cx_Oracle.

1 Ответ

0 голосов
/ 05 сентября 2018

Оказывается, что «таблица», из которой я брал данные, была на самом деле представлением базы данных, своего рода псевдотабличностью, которая состоит из sql, объединяющего другие таблицы.

Ошибка на самом деле лежала в представлении, а не в моем SQL, где был подзапрос, указанный в ошибке. Спасибо за помощь в комментариях!

...