我用test用户以Normal角色登录,然后创建一个表空间,并在该表空间下创建一个表user。如果我用test用户以sysdba角色登录,执行select * from user;报错“表或视图不存在”,这个是怎么回事呢?新手求助,多谢指点。

解决方案 »

  1.   

    select * from test.user;
    试试
      

  2.   


    需要 select * from test.user;oracle规定,跨用户访问需要在表名字前面加上用户名标识
      

  3.   

    写成test.user
    select * from test.user;不同的用户下使用,需要添加用户名
      

  4.   


    1.
    create public synonym user for test.user
    select * from user
    -- 使用同义词
    2.
    select * from test.user --要在表的前面加个创建此表的用户
      

  5.   

    创建表应该是在schema(模式)下,不用指定表空间.如果要访问其他schema下,当然要在表名前加上schema名
      

  6.   

    当你用as sysdba的方式登录的时候,不管你使用的用户是什么,角色都是sys,用户也会变成sys。所以你不能直接查看test用户下的对象。
      

  7.   


    这个可能是问题的关键。
    你 ‘test用户以sysdba角色登录’  
    输入 show user   看看用户名是什么?
    请你一定告知
      

  8.   


    USER is "SYS"请问show user命令要如何在plsql developer中执行,要用其他的命令替代吗?
      

  9.   

    show user是sqlplus命令,要在plsql developer中 文件>新建>命令窗口 中用