xuhainanjing 发表于 2013-01-16 11:09

见过没有tablespace的table么?

SYS@single> select owner,table_name,tablespace_name from dba_tables where tablespace_name is null and rownum < 10;

OWNER         TABLE_NAME                     TABLESPACE_NAME
--------------- ------------------------------ ------------------------------
SYS             ATEMPTAB$                            (NULL)
SYS             MAP_OBJECT                        (NULL)
SYS             CLUSTER_DATABASES         (NULL)
SYS             CLUSTER_NODES                  (NULL)
SYS             CLUSTER_INSTANCES            (NULL)
SYS             PSTUBTBL                            (NULL)
SYS             WRI$_ADV_ASA_RECO_DATA         (NULL)
SYS             ODCI_SECOBJ$                     (NULL)
SYS             ODCI_WARNINGS$                (NULL)

9 rows selected.

doni 发表于 2013-01-21 11:39

本帖最后由 doni 于 2013-01-22 10:36 编辑

系统表,在内存中的,启动时创建 (? 可能)

xuhainanjing 发表于 2013-01-22 08:25

本帖最后由 xuhainanjing 于 2013-01-22 08:27 编辑

SYS@single_copy> select OWNER,table_name,tablespace_name from dba_tables where owner='HR';      

OWNER         TABLE_NAME                     TABLESPACE_NAME
--------------- ------------------------------ ------------------------------
HR            REGIONS                        EXAMPLE
HR            LOCATIONS                      EXAMPLE
HR            DEPARTMENTS                  EXAMPLE
HR            JOBS                               EXAMPLE
HR            EMPLOYEES                      EXAMPLE
HR            JOB_HISTORY                  EXAMPLE
HR            COUNTRIES                      ---      <---这可不是系统表!

7 rows selected.

SYS@single_copy> select * from hr.countries;

CO COUNTRY_NAME                              REGION_ID
-- ---------------------------------------- ----------
AR Argentina                                       2
AU Australia                                       3
BE Belgium                                           1
BR Brazil                                          2
CA Canada                                          2
CH Switzerland                                       1
CN China                                             3
DE Germany                                           1
DK Denmark                                           1
EG Egypt                                             4
FR France                                          1
HK HongKong                                          3
IL Israel                                          4
IN India                                             3
IT Italy                                             1
JP Japan                                             3
KW Kuwait                                          4
MX Mexico                                          2
NG Nigeria                                           4
NL Netherlands                                       1
SG Singapore                                       3
UK United Kingdom                                    1
US United States of America                        2
ZM Zambia                                          4
ZW Zimbabwe                                          4

25 rows selected.

doni 发表于 2013-01-22 09:59

我看了一下,如果是分区表的话,tablespace就为NULL
不过LS这个表看上去不像是分区表,可能是其他什么情况,我查查资料看

doni 发表于 2013-01-22 10:35

对比了一下dba_objects,dba_segments
我的理解是这样的:
table不一定是物理的object(segment),
就比如分区表,表的分区才是真正的object(segment)
所以,对于分区表,表是逻辑上的概念,所以没有tablespace_name
分区才有 tablespace_name
其他的object也可能有类似的情况

doni 发表于 2013-01-22 10:40

http://docs.oracle.com/cd/B10501_01/server.920/a96536/ch2152.htm#1303953
TABLESPACE_NAME VARCHAR2(30) Name of the tablespace containing the table; NULL for partitioned, temporary and index-organized tables

对于我在2楼提到的内存中的表,还未找到相关资料

xuhainanjing 发表于 2013-01-22 10:41

hr.countries 应该不是分区表

doni 发表于 2013-01-22 10:42

本帖最后由 doni 于 2013-01-22 10:43 编辑

回复 7# xuhainanjing


    NULL for partitioned, temporary and index-organized tables

   查询一下dba_objects,看一下object_type

xuhainanjing 发表于 2013-01-22 10:47

SYS@single_copy> select segment_name,segment_type,partition_name from dba_segments where owner='HR' and segment_name='COUNTRIES';

no rows selected

SYS@single_copy> select object_name,object_type from dba_objects where object_name='COUNTRIES' and owner='HR';

OBJECT_NAME                              OBJECT_TYPE
---------------------------------------- -------------------
COUNTRIES                              TABLE

doni 发表于 2013-01-22 11:05

本帖最后由 doni 于 2013-01-22 11:06 编辑

select object_name,object_type,TEMPORARY from dba_objects where object_name='COUNTRIES' and owner='HR';
看一下TEMPORARY这个字段的值
页: [1] 2
查看完整版本: 见过没有tablespace的table么?