我用A用户登陆SQLPLUS,建了一个表,可以向其中插入数据,可以查询
然后我登陆EMC控制台,默认首选身份时SYSTEM,进入后能看到那个表,但看不建表中的数据,我在EMC中向表中插入1条数据,在SQLPLUS中的A用户可以查询到。
清问这是什么原因?应该如何解决?
谢谢大家了。

解决方案 »

  1.   

    用sqlplus登录,插入数据后,你没有执行commit;只有执行了提交语句,才可以在别的地方查看到数据;
      

  2.   

    用户A的表空间是什么?SYSTEM?
      

  3.   

      楼上解释的都对,补充一下
      如果我们执行了DELETE,INSERT,UPDATE却没有COMMIT,
      那么在当前这个SESSION中,是可以看到表中记录的改变的
      但是,事实上,ORACLE并没有把这些记录进行对应的更改,而是仅仅把这行记录打了一个标记(DELETE),表示这条记录即将需要进行的COMMIT,
      此时,如果你换了SESSION,用户都不用换,都会发现,更新并不可见,
      这就是原因,
      
      
      

  4.   

    EMC控制台看不到数据,但是能插入数据,如果A不提交应该不能插入才对啊.
      

  5.   

    创建表用的是CREATE语句是DDL语句,DDL语句执行完成后即即写入数据库。而INSERT语句属于DML语句,语句执行后,数据被放进缓存内,并未提交到数据库。所以用SYSTEM用户只能看到表而看不到数据。INSERT语句执行后必须提交(即执行COMMIT)才能将数据提交到数据库保存,此后其他由此表查看权限的用户才能访问到此条数据。