查询表所在的表空间 我知道一个表的名字,但是不知道它所在的表空间名字,请哪位高手指点一下。谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select t.TABLESPACE_NAME, t.TABLE_NAME from user_tables t where t.TABLE_NAME = 'table_name' 不知道楼上的大哥试过没有?我按照你说的做了,说‘未选定行’,不出现结果。SQL>select t.tablespace_name,t.table_name from user_tables t where t.table_name='clinic_master';未选定行以上是运行结果。 SQL> select t.TABLESPACE_NAME, t.TABLE_NAME 2 from user_tables t where t.TABLE_NAME = 'ERIC_TMP' 3 /TABLESPACE_NAME TABLE_NAME------------------------------ ------------------------------APPLSYSD ERIC_TMPSQL> 表明必须全部大写。要不用这个,加上upperselect t.TABLESPACE_NAME, t.TABLE_NAME from user_tables t where t.TABLE_NAME = upper('table_name')SQL> select t.TABLESPACE_NAME, t.TABLE_NAME 2 from user_tables t 3 where t.TABLE_NAME = upper('eric_tmp') 4 /TABLESPACE_NAME TABLE_NAME------------------------------ ------------------------------APPLSYSD ERIC_TMPSQL> 还是不行,是不是和登陆用户的权限有关阿 ?SQL>conn /as sysdba已连接。SQL>conn system/manager已连接。SQL> select t.TABLESPACE_NAME, t.TABLE_NAME from user_tables t where t.TABLE_NAME = 'CLINIC_MASTER';未选定行。 select t.TABLESPACE_NAME, t.TABLE_NAME from all_tables t where t.TABLE_NAME = 'CLINIC_MASTER';用这个吧。 谢谢大侠!这个能用!能留个qq号码什么的联系方式吗?希望和你多请教一些oracle方面的问题。 这种方法是涉及到了‘数据字典’的问题相关表的属性,用户属性等都可以通过数据字典中来查询明白吗说明如下 命名说明: Oracle数据字典中,对象名称多数以"USER.","ALL.","DBA."为前缀"USER."视图中记录通常记录执行查询的帐户所拥有的对象的信息,"ALL."视图中记录包括"USER"记录和授权至PUBLIC或用户的对象的信息,"DBA."视图包含所有数据库对象,而不管其所有者。 使用举例: select * from dba_data_files 查询表空间的信息(当前用户必须拥有DBA角色)。 select owner , object_name ,object_type from all_objects 查询某一用户下的所有表、过程、函数等信息。 wjh_7_7(学习再教育) 说的不错'CLINIC_MASTER'这个表不是属于用户t的,只是用户t可以访问表'CLINIC_MASTER'所以用user_tables查不到. 咨询一个SQL优化问题。 oracle触发器中删除和创建序列,请大神指教。 谁用过OCI涵数,近来看看. Oracle8i 服务OracleOraHome81ManagementServer不能启动(OS is Win2000) 初学者的几个小问题: ...... 哪個高手幫我解釋一下這個我從沒見過的sql語句阿﹐謝謝先 关于快照的问题,再线等待 请问:P4中为何不能安装oracle9i? Oracle 批量修改信息 SQL where in 数据量很大时用循环代替? exp多个表空间,想imp一个指定表空间如何做 新手老问题,关于management server登陆
from user_tables t where t.TABLE_NAME = 'table_name'
SQL>select t.tablespace_name,t.table_name from user_tables t where t.table_name='clinic_master';
未选定行以上是运行结果。
2 from user_tables t where t.TABLE_NAME = 'ERIC_TMP'
3 /TABLESPACE_NAME TABLE_NAME
------------------------------ ------------------------------
APPLSYSD ERIC_TMPSQL> 表明必须全部大写。要不用这个,加上upperselect t.TABLESPACE_NAME, t.TABLE_NAME
from user_tables t
where t.TABLE_NAME = upper('table_name')SQL> select t.TABLESPACE_NAME, t.TABLE_NAME
2 from user_tables t
3 where t.TABLE_NAME = upper('eric_tmp')
4 /TABLESPACE_NAME TABLE_NAME
------------------------------ ------------------------------
APPLSYSD ERIC_TMPSQL>
SQL>conn /as sysdba
已连接。
SQL>conn system/manager
已连接。
SQL> select t.TABLESPACE_NAME, t.TABLE_NAME
from user_tables t where t.TABLE_NAME = 'CLINIC_MASTER';未选定行。
from all_tables t where t.TABLE_NAME = 'CLINIC_MASTER';用这个吧。
这种方法是涉及到了‘数据字典’的问题
相关表的属性,用户属性等都可以通过数据字典中来查询明白吗说明如下
命名说明:
Oracle数据字典中,对象名称多数以"USER.","ALL.","DBA."为前缀"USER."视图中记录通常记录执行查询的帐户所拥有的对象的信息,"ALL."视图中记录包括"USER"记录和授权至PUBLIC或用户的对象的信息,"DBA."视图包含所有数据库对象,而不管其所有者。
使用举例:
select * from dba_data_files
查询表空间的信息(当前用户必须拥有DBA角色)。
select owner , object_name ,object_type from all_objects
查询某一用户下的所有表、过程、函数等信息。
'CLINIC_MASTER'这个表不是属于用户t的,只是用户t可以访问表'CLINIC_MASTER'
所以用user_tables查不到.