用户不同,虽然建立了同样名字的表,但它的完整名称其实是:用户名.表名
所以是不同的表。
再者,用户A插入数据后没有commit,当然用户B没有看到A.tableA的内容了。

解决方案 »

  1.   

    表空间不属于模式中的对象,不能与用户和表混为一谈。在ORACLE中用户和模式是一一对应的。表只能属于某一模式中的模式对象成员。所以两个用户下的表即使表名一样,但分属两个表,都会存在自己的空间,因为他们是不同模式下的模式对象。全名为:模式(用户名).模式对象
    不同的模式对象之间共享信息不存在看不到的问题,估计是你没COMMIT;
      

  2.   

    依照楼上各位高手所说,应该是两张表。但是这句怎样理解:“用户A插入数据后没有commit,当然用户B没有看到A.tableA的内容了”。我做了试验,用用户A的身份创建的一张表,用户B还有其他高级用户根本就看不到这张表,何来可以看到A.tableA表的数据。疑惑!何种情况下可以看到用户A创建的表和其数据呢?感激万分!!
      

  3.   

    Oracle issues an implicit COMMIT before and after any data definition language (DDL) statement.  oracle 在DDL语句之前和之后发出一个隐式提交。
    而create table是ddl语句,所以只要有权限就可以查询这张表。
    还有,dba角色的用户具有select any table,所以他可以查询任何的用户表。不管表是不是自己建的,有没有授权。
    何种情况下可以看到用户A创建的表和其数据呢?个人认为:
    对那张表具有select 权限,或具有select any table 权限的用户,如果创建表的用户发出一个commit,或者没有发出commit,但是等待一个checkpoint时间到来时,系统会自动提交,其他的用户就可以看到数据了。
      

  4.   

    可是我有dba权限的用户进入数据库,还是看不到A.tableA表,是什么原因呀!
    谢谢!!