如何在指定的表空间下查询表。一条SELECT语句来完成。谢谢了~

解决方案 »

  1.   

     select * from all_tables where tablespace_name='USERS'
    USERS是表空间名,你可以换下
      

  2.   

    你理解错我的意思了。比如ADMINSPACE下有TABLE I和TABLE II而TESTSPACE下有TABLE III和TABLE IV
    我想指定在ADMINSPACE 下查询TABLE I。比如是像这样SELECT * FROM [TABLE II] FOR ADMINSPACE 一条语句哦。
      

  3.   

    SELECT * FROM ADMINSPACE.TABLE1
      

  4.   


    CREATE TABLESPACE newspace DATAFILE 'e:\OracleUser\newspace.dbf' SIZE 10m;CREATE TABLE newtbl(ID NUMBER) TABLESPACE newspace;SELECT * FROM newspace.newtbl;ORA-00942: 表或视图不存在
      

  5.   

    理解错了你的意思,以为是schema
      

  6.   

    是我理解错误吗?我刚才所做的操作应该是在用户默认的表空间啊。而刚刚的那个newspace是新建的。如果只是SELET * FROM newtbl;是没有问题的。但是当我ALTER TABLESPACE newspace OFFLINE;的话就会查不到。你能解释下吗。当我建完newspace之后我到底是在用户的默认表空间还是在newspace表空间。还是另有解释呢?
      

  7.   

    CREATE TABLE newtbl(ID NUMBER) TABLESPACE newspace; 
    建表时你已经指定了这个表在newspace下面啊
      

  8.   

    我的理解是,表空间属于物理结构,表,schema之类属于逻辑结构。
      

  9.   

    我觉得表空间并不是一个物理结构 而是逻辑结构楼主首先要搞清楚SCHEMA和TABLESPACE分别是什么概念。
    举例子来说吧
    两个用户U1和U2 在创建用户的时候会给该用户指定其默认表空间 
    也就是说 如果这个用户在创建表或者其他对象的时候没有使用TABLESPACE子句指定创建在哪个表空间下的话 那么ORACLE就会把这个用户创建的对象放在这个用户的默认表空间下
    我们在这里假设U1的默认表空间为TBS1 用户U2的默认表空间为TBS2
    U1建了T1表  该表在TBS1中
    U2建了T2表  该表在TBS2中我觉得楼主的意思是:用户U2想查询用户U1所创建的T1表的时候应该使用如下语句:
    select * from TBS1.T1
    可实际上这样的语法在ORACLE中是错误的。而且也没有任何意义呀
    楼主仔细想想有什么意义
    在ORACLE中正确的查询方法应该是如下所示:
    select * from U1.T1
    在这里表名T1前面加上了U1.这个前缀 表明T1这个表是属于用户U1的 如果U2想查询 还需要一定的权限才行关于SCHEMA的概念楼主可以参考下面的链接
    http://blog.csdn.net/wh62592855/archive/2009/09/27/4599333.aspx