oracle10i, 创建了一个用户 oa ,给足了权限,设置了默认表空间 tm但是访问tm里面的表时,还必须在表名前面加 tm.   否则提示表或视图不存在,这是为什么?

解决方案 »

  1.   

    因为你还有个用户叫tm,并且表空间tm里边的表都是用户tm的
      

  2.   

    表名前面的tm指的是tm用户的表吧
    不加用户名时查询的是oa用户下的表,你没有创建,当然不存在了
      

  3.   

    哦。这下明白了。多谢两位。原来 表名. 前面的名字是用户名,而不是表空间名。 那像我这种情况就必须加上用户名才能访问吗? 我已经把tm用户创建的这些表的select权限 grant给 oa了。
      

  4.   

    需要加用户名,要不就建个同义词
    oa:
    create synonym a for tm.a然后查询同义词就行了
    select * from a;
      

  5.   

    多些狂浪,不过还是教一下如何加用户名吧,  因为这个tm用户名下面有几十张表都要通过oa来直接访问,挨个建同义词比较麻烦。  我耍个小懒,先不费劲去网上查了,呵呵
      

  6.   

    ..需要挨个建,要不就直接登录tm用户
    要不登录oa后切换schema
    alter session set current_schema=tm
    然后再执行查询