3

我必须编写一个查询数据库中视图的 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

这对我来说似乎难以置信,因为我的查询部分不涉及聚合。此外,当我查询文件名以匹配某个模式时:

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

...我仍然得到文件名为 NULL 的结果行。

是否有可能是视图的底层、不可访问的定义不正确,导致这种奇怪的行为?

4

1 回答 1

0

你能发布你的视图的创建脚本吗?名为文件名的列是否在名为 VW_THEVIEWNAME 的视图中显式声明?

于 2011-05-13T09:34:06.513 回答