【问题标题】:Query driving a view and actual view not returning same results查询驱动视图和实际视图不返回相同的结果
【发布时间】:2009-12-01 15:47:40
【问题描述】:

我有一个视图,它返回要推送到外部程序的四列数据。当我简单地查询视图(“从 schema.view_name 中选择 *”)时,我得到 10353 行。当我运行创建视图的实际 SQL 时(我从字面上复制并粘贴了 Oracle 存储的内容,减去“创建或替换”语句),我得到 238745 行。

任何想法为什么会发生这种情况?

【问题讨论】:

  • 你确定吗?这听起来不可能。因为确实如此,请原谅这些简单的问题,但是您“确定”您没有遗漏某些 Where 子句谓词或某处的“不同”吗?您确定要针对同一个数据库和同一台服务器执行这两个测试吗? ——
  • 我确信我在完全相同的位置运行查询。为了确定,我同时在同一个 PL/SQL 开发人员窗口中运行它们。

标签: sql plsql view


【解决方案1】:

最佳猜测:当您独立运行查询时,您并没有在创建视图的同一架构中运行它(我从您在示例SELECT 中包含架构名称这一事实推断出这一点)。运行查询的架构有自己的表,其名称与视图中的一个基表同名,或者其中一个名称是指向另一个视图的同义词,该视图仅包含基础表。

【讨论】:

  • 这正是问题所在。对模式的简单检查会告诉我这一点。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-05
  • 2019-06-04
  • 1970-01-01
  • 1970-01-01
  • 2019-10-15
相关资源
最近更新 更多