即使表有记录,也无法访问记录

时间:2017-10-24 09:24:20

标签: sql oracle

我的数据库上有两个模式,即主机和暂存。 我已将表host.ctrl_test上的SELECT grant授予用户登台。 但是当我从staging用户触发host.ctrl_test表上的select查询时,它返回0行。

SQL> conn host

Enter password:

Connected.

SQL> select count(1) from host.ctrl_test;

  COUNT(1)
----------
     14455

SQL> conn staging

Enter password:

Connected.

SQL> select count(1) from host.ctrl_test;

  COUNT(1)
----------
         0

1 个答案:

答案 0 :(得分:1)

此行为的可能原因包括:

  1. 忘记提交或使用错误的数据库其中99.999%的问题是由于忘记提交或无意中查看了错误的数据库引起的。为了避免不可避免的“您犯了?”问题,它有助于在简单的基于文本的环境(如SQL * Plus)中发布完全可重现的测试用例,并提示显示用户名和数据库名。
  2. 临时表对于全局临时表或私有临时表,数据仅对一个会话可见。
  3. 虚拟专用数据库/翻译/高级重写 Oracle具有一些功能,根据用户的不同,您可以用另一个查询静默替换一个查询。通常,您可以在“执行”计划的“注释”部分中看到这些奇怪的更改。
  4. 取决于会话设置的视图该表实际上是一个视图,并且包含取决于会话设置的条件。
  5. 错误结果错误/损坏大约每万亿次出现一个损坏的索引,该索引给出错误的结果,但仅适用于碰巧使用该索引的某些会话。