oracle 不同用户查询时,同一表中的计数(*)不同

ecfdbz9o  于 2023-04-20  发布在  Oracle
关注(0)|答案(2)|浏览(147)

当我跑步时:

select count(*)
from my_table;

当我作为两个不同的用户运行它时,我得到两个不同的非零数字。
什么会导致这种情况?
有关表格的更多信息:

sg3maiej

sg3maiej1#

您的访问似乎受到Oracle的Virtual Private Database功能的限制,该功能提供了行级安全性。
您可能有一个生成动态where子句的函数。
假设您(或您的同事)具有查看数据库中设置的信息所需的权限,您可以查询数据字典以查看该信息。

anhgbhbe

anhgbhbe2#

在Oracle中,用户可以看到在其会话中创建的未提交的更改,而其他会话(即使属于同一用户)将看不到这些未提交的更改。因此,如果用户在您正在查询的表中有INSERT ed或DELETE d行,并且没有使用COMMIT语句,则他们将看到与其他用户不同的行数。

相关问题