Запросы к представлениям вызывают странные ошибки в Oracle SQL Developer

Мне нужно написать команду SQL, которая запрашивает представление в базе данных. Я не создавал их сам и не имею доступа к таблицам. Только представления предоставляются нам нашим производителем программного обеспечения. Я использую Oracle SQL Developer 3.0 для запросов. Следующая команда работает безупречно, как и ожидалось:

SELECT * FROM EDBADM.VW_THEVIEWNAME

Однако, когда я прошу, чтобы определенный столбец (называемый filename) не содержал нулевых значений:

SELECT * FROM EDBADM.VW_THEVIEWNAME WHERE filename IS NOT NULL;

.... Я получаю следующую ошибку:

ORA-00979:
00979. 00000 -  "not a GROUP BY expression"
*Cause:    
*Action:
Error in line: 3 column: 75

Это кажется мне неправдоподобным, поскольку в моей части запроса не используется агрегация. Кроме того, когда я запрашиваю соответствие filename определенному шаблону:

SELECT * FROM EDBADM.VW_THEVIEWNAME WHERE filename LIKE 'abc%'

... Я по-прежнему получаю строки результатов, в которых filename имеет значение NULL.

Возможно ли, что базовое, недоступное определение представления неверно, что приводит к такому странному поведению??


person user748261    schedule 13.05.2011    source источник
comment
Вы видите источник представления в ALL_VIEWS?   -  person Alex Poole    schedule 13.05.2011


Ответы (1)


Не могли бы вы опубликовать сценарий создания вашего представления? Является ли столбец с именем имя файла явно объявленным в представлении с именем VW_THEVIEWNAME?

person UltraCommit    schedule 13.05.2011
comment
Как я изначально написал: база данных была создана сторонним производителем программного обеспечения. Это серверная часть системы управления клиентами. Производитель не предоставляет нам никакого прямого доступа к этому бэкенду, кроме как через представления. Это означает, что, к сожалению, у меня нет для вас скрипта создания, извините! - person user748261; 13.05.2011
comment
Пока вы используете свое программное обеспечение, вы можете использовать SESSION BROWSER от Toad (Quest Software), чтобы увидеть, какие запросы были запущены на сервере. На самом деле это работа по анализу запросов. Вы уже пробовали? В Oracle полезными системными представлениями являются, например, V$SQLTEXT, V$SQLAREA. - person UltraCommit; 17.05.2011