Differents SELECTs子句改变行数(具有相同的WHERE条件)

时间:2014-07-04 14:00:06

标签: sql oracle

我有问题(可能不是错误)。

在Oracle视图中, SELECT中的列会更改从DB获取的行数。

VIEW的定义是错误的吗?

我认为这个事件只能通过VIEWS实现,但从不在TABLES中,或者不是吗?

--16 ROWS
SELECT *
FROM MY_ORACLE_VIEW
WHERE CONDITION_1 = 'A' AND CONDITION_2 = 'B';

--112 ROWS
SELECT COLUMN_X, COLUMN_Y
FROM MY_ORACLE_VIEW
WHERE CONDITION_1 = 'A' AND CONDITION_2 = 'B';

注意:真实视图非常复杂

来自(SELECT * FROM V $ VERSION)的

Oracle版本

  • Oracle数据库11g企业版11.2.0.4.0版 - 64位生产
  • PL / SQL版本11.2.0.4.0 - 生产
  • CORE 11.2.0.4.0生产
  • TNS for HPUX:版本11.2.0.4.0 - 生产
  • NLSRTL版本11.2.0.4.0 - 制作

1 个答案:

答案 0 :(得分:0)

如果VIEW定位到一个不断增长的表格,就会发生这种情况。 或者,如果VIEW在where子句中使用TIME变量。

您也可以尝试创建自己的简单视图,看看这是否是一个经常出现的问题。

无论如何,除非您提供视图代码,否则我们只能推测它。