Oracle如何查询指定表分区数?pg_partitions对应系统视图是什么
Oracle分区数量查询及对应系统视图
等价系统视图
PostgreSQL中pg_partitions在Oracle里对应的是分区表相关的系统视图,根据权限和查询范围不同分为三类:
USER_TAB_PARTITIONS:存储当前登录用户拥有的所有分区表的分区信息,不需要额外权限ALL_TAB_PARTITIONS:存储当前登录用户有权限访问的所有分区表的分区信息DBA_TAB_PARTITIONS:存储全库所有分区表的分区信息,需要DBA权限才可访问
统计指定表分区数量的查询语句
注意Oracle表名默认存储为大写,如果你建表时使用双引号指定了小写名称,需要对应匹配大小写。
查询当前用户下指定表的分区数
SELECT COUNT(*) AS partition_count FROM USER_TAB_PARTITIONS WHERE TABLE_NAME = '你的表名';
查询指定用户下指定表的分区数(需要访问对应用户表的权限)
SELECT COUNT(*) AS partition_count FROM ALL_TAB_PARTITIONS WHERE TABLE_OWNER = '表所属的用户名' AND TABLE_NAME = '你的表名';
全库范围查询(需要DBA权限)
SELECT COUNT(*) AS partition_count FROM DBA_TAB_PARTITIONS WHERE OWNER = '表所属的用户名' AND TABLE_NAME = '你的表名';
补充说明
如果你使用的是复合分区(分区下嵌套子分区),需要统计子分区数量的话,可以替换上面视图为对应的USER_TAB_SUBPARTITIONS、ALL_TAB_SUBPARTITIONS、DBA_TAB_SUBPARTITIONS即可。
内容的提问来源于stack exchange,提问作者Damianos17
相关产品推荐
相关产品推荐

