ORACLE 查看分区表的相关信息语句

ORACLE数据库如何查看分区表的相关信息呢?不知道你有没有总结过这方面的知识。下面我们先创建两个表TEST、 GPRS_CELLTOPVOL_WK来做实验,脚本如下:

复制代码
CREATE   TABLE  GPRS_CELLTOPVOL_WK
 (
       DATE_CD                 
NUMBER  (  8  )  NOT   NULL                        ,
       WK_CD                   
NUMBER  (  2  )  NOT   NULL                        ,
       CITY_ID                 
NUMBER  (  10  )                               ,
       CELL_EN_NAM             
VARCHAR2  (  64  )  NOT   NULL                     ,
       CELL_CN_NAM             
VARCHAR2  (  64  )  NOT   NULL                     ,
       CELL_VOL                
NUMBER                                       ,
       CELL_VOL_PCT            
NUMBER                                       ,
       AVG_RAT                 
NUMBER                                       ,
       
CONSTRAINT  PK_GPRS_CELLTOPVOL_WK  PRIMARY   KEY  (DATE_CD, WK_CD, CITY_ID, CELL_EN_NAM, CELL_CN_NAM)
) PARTITION 
BY  RANGE(DATE_CD)
    (
            PARTITION TEST_RANGE_1 
VALUES  LESS THAN ( 201104 ) TABLESPACE USERS,
            PARTITION TEST_RANGE_2 
VALUES  LESS THAN ( 201105 ) TABLESPACE USERS,
            PARTITION TEST_RANGE_3 
VALUES  LESS THAN ( 201106 ) TABLESPACE USERS
    );
/


COMMENT 
ON   TABLE  GPRS_CELLTOPVOL_WK  IS   ' GPRS流量小区周分析 '
/

COMMENT 
ON   COLUMN  GPRS_CELLTOPVOL_WK.DATE_CD               IS   ' 日期编码 '
/                                                           
COMMENT 
ON   COLUMN  GPRS_CELLTOPVOL_WK.WK_CD                 IS   ' 周次编码 '
/                                                           
COMMENT 
ON   COLUMN  GPRS_CELLTOPVOL_WK.CITY_ID               IS   ' 地市编码 '
/                                                           
COMMENT 
ON   COLUMN  GPRS_CELLTOPVOL_WK.CELL_EN_NAM           IS   ' 小区英文名 '
/                                                           
COMMENT 
ON   COLUMN  GPRS_CELLTOPVOL_WK.CELL_CN_NAM           IS   ' 小区中文名 '
/                                                           
COMMENT 
ON   COLUMN  GPRS_CELLTOPVOL_WK.CELL_VOL              IS   ' 小区流量 '
/                                                           
COMMENT 
ON   COLUMN  GPRS_CELLTOPVOL_WK.CELL_VOL_PCT          IS   ' 小区流量占比 '
/                                                           
COMMENT 
ON   COLUMN  GPRS_CELLTOPVOL_WK.AVG_RAT               IS   ' 平均速率 '
复制代码

/ 

 

复制代码
CREATE   TABLE  TEST
(
  ID    
NUMBER ( 10 )  ,
  NAME  
VARCHAR2 ( 20 ),
  SEX   
VARCHAR2 ( 2 )
)
TABLESPACE SYSTEM
  PCTFREE 
10
  PCTUSED 
40
  INITRANS 
1
  MAXTRANS 
255
  STORAGE
  (
    INITIAL 64K
    MINEXTENTS 
1
    MAXEXTENTS UNLIMITED

  ); 

复制代码

假设你是一个开发人员或DBA,你想查看数据库里面那些表或某个表是否分区表,你可以用下面的几种方法去查看。

方法1:  

 SELECT * FROM ALL_TABLES WHERE TABLE_NAME = 'TEST'

SELECT   *   FROM  ALL_TABLES  WHERE  TABLE_NAME  =   ' GPRS_CELLTOPVOL_WK ' ;

如图所示截图你会发现GPRS_CELLTOPVOL_WK表的TABLESPCAE_NAME为空,而表TEST的TABLESPCAE_NAME为SYSTEM,所以你可以通过TABLESPCAE_NAME是否为空来判断一个表是否为分区表。网上有人给出这种方法,但是要切记的是,不见得TABLESPCAE_NAME为NULL,则该表就是分区表,两者之间没有互推关系。OWNER为HR的COUNTRIES表就是一个例子。其实你可以通过 ALL_TABLES里的字段PARTITIONED的值为YES或NO来区分该表是否是分区表。如下下所示

 SELECT PARTITIONED FROM ALL_TABLES WHERE TABLESPACE_NAME IS NULL  

 

 

 

方法2 你可以通过DBA_PART_TABLES、 ALL_PART_TABLES、 USER_PART_TABLES来查看分区表信息、这三者的具体差别如下: 

显示数据库所有分区表的信息:DBA_PART_TABLES

显示当前用户可访问的所有分区表信息:ALL_PART_TABLES

显示当前用户所有分区表的信息:USER_PART_TABLES

 

SELECT * FROM ALL_PART_TABLES WHERE TABLE_NAME = 'GPRS_CELLTOPVOL_WK'

 

DBA_PART_TABLES等表中你可以查看分区表的基本信息:例如分区表类型(通过PARTITIONING_TYPE字段查看)、子分区类型(SUBPARTITIONING_TYPE)、分区个数(PARTITION_COUNT)但是如果你想查看该表的详细分区信息,那么你可以通过DBA_TAB_PARTITIONS、ALL_TAB_PARTITIONS、USER_TAB_PARTITIONS这三个表去查看相关详细信息。三者之间的区别如下所示 

显示Oracle查看分区表信息 显示数据库所有分区表的详细分区信息:DBA_TAB_PARTITIONS

显示当前用户可访问的所有分区表的详细分区信息:ALL_TAB_PARTITIONS

显示当前用户所有分区表的详细分区信息:USER_TAB_PARTITIONS 

 


如果您想查看分区表的分区列信息 ,那么你可以通过DBA_PART_KEY_COLUMNS、ALL_PART_KEY_COLUMNS、USER_PART_KEY_COLUMNS三个表来查看相关信息,如下图所示,三者之间的区别如下所示

显示当前用户所有分区表的分区列信息:USER_PART_KEY_COLUMNS 

显示当前用户可访问的所有分区表的分区列信息:ALL_PART_KEY_COLUMNS 

显示分区列 显示数据库所有分区表的分区列信息:DBA_PART_KEY_COLUMNS

 

 

如果你想查看组合表的子分区信息以及子分区列信息情况,你可以从下面的这些表去查看具体相关情况

显示当前用户所有组合分区表的子分区信息:USER_TAB_SUBPARTITIONS 

显示当前用户可访问的所有组合分区表的子分区信息:ALL_TAB_SUBPARTITIONS 

显示当前用户可访问的所有组合分区表的子分区信息:ALL_TAB_SUBPARTITIONS 

  

显示当前用户所有分区表的子分区列信息:USER_SUBPART_KEY_COLUMNS

显示当前用户可访问的所有分区表的子分区列信息:ALL_SUBPART_KEY_COLUMNS 

显示子分区列 显示数据库所有分区表的子分区列信息:DBA_SUBPART_KEY_COLUMNS 

 

 

作者: 潇湘隐者

如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨小小打赏一下吧,如果囊中羞涩,不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.

转载地址:http://www.cnblogs.com/kerrycode/archive/2011/07/03/2096692.html
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值