【问题标题】:Queries on Views cause strange errors in Oracle SQL Developer对视图的查询导致 Oracle SQL Developer 出现奇怪的错误
【发布时间】:2011-08-24 18:46:17
【问题描述】:

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

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

【问题讨论】:

  • 你能看到ALL_VIEWS的视图源吗?

标签: sql oracle view oracle-sqldeveloper ora-00979


【解决方案1】:

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

【讨论】:

  • 正如我最初写的:数据库是由外部软件制造商创建的。它是客户管理系统的后端。制造商不向我们提供任何直接访问此后端的权限,除非通过视图。这意味着很遗憾我没有可供您使用的创建脚本,抱歉!
  • 当您使用您的软件时,您可以使用 Toad (Quest Software) 的 SESSION BROWSER 来查看服务器上启动了哪些查询。这实际上是一个“查询嗅探”工作。你已经试过了吗?在 Oracle 中,有用的系统视图是 V$SQLTEXT,例如 V$SQLAREA。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-20
  • 2012-06-26
  • 2011-02-22
  • 1970-01-01
  • 2011-09-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多