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 '周次编码'
/
COMMENTCK电影网[www.aikan.tv/special/ckdianyingwang/] 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