当我跑步时:
select count(*) from my_table;
当我作为两个不同的用户运行它时,我得到两个不同的非零数字。什么会导致这种情况?有关表格的更多信息:
sg3maiej1#
您的访问似乎受到Oracle的Virtual Private Database功能的限制,该功能提供了行级安全性。您可能有一个生成动态where子句的函数。假设您(或您的同事)具有查看数据库中设置的信息所需的权限,您可以查询数据字典以查看该信息。
where
anhgbhbe2#
在Oracle中,用户可以看到在其会话中创建的未提交的更改,而其他会话(即使属于同一用户)将看不到这些未提交的更改。因此,如果用户在您正在查询的表中有INSERT ed或DELETE d行,并且没有使用COMMIT语句,则他们将看到与其他用户不同的行数。
INSERT
DELETE
COMMIT
2条答案
按热度按时间sg3maiej1#
您的访问似乎受到Oracle的Virtual Private Database功能的限制,该功能提供了行级安全性。
您可能有一个生成动态
where
子句的函数。假设您(或您的同事)具有查看数据库中设置的信息所需的权限,您可以查询数据字典以查看该信息。
anhgbhbe2#
在Oracle中,用户可以看到在其会话中创建的未提交的更改,而其他会话(即使属于同一用户)将看不到这些未提交的更改。因此,如果用户在您正在查询的表中有
INSERT
ed或DELETE
d行,并且没有使用COMMIT
语句,则他们将看到与其他用户不同的行数。