查询驱动视图和实际视图不返回相同的结果

Posted

技术标签:

【中文标题】查询驱动视图和实际视图不返回相同的结果【英文标题】: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 开发人员窗口中运行它们。 【参考方案1】:

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

【讨论】:

这正是问题所在。对模式的简单检查会告诉我这一点。非常感谢。

以上是关于查询驱动视图和实际视图不返回相同的结果的主要内容,如果未能解决你的问题,请参考以下文章

使用 Simba ODBC 驱动程序从 Excel 查询 Couchbase 视图

如何在 python Cassandra 驱动程序中的物化视图上使用准备好的语句?

Oracle 托管驱动程序可以正确使用 async/await 吗?

Crystal Reports 未使用 Oracle 驱动程序从某些 Oracle 视图返回数据

查询的结果从实体框架查询返回相同的 COLUMN_NAME 值,这没有意义

6.mysql视图