如何计算特定 table 的分区数?

How to count the partitions for particular table?

在 Postgres 中我可能会使用类似

的东西
select count(p1.*) from pg_partitions p1
where  p1.tablename = 'table_name';

如何在 oracle 中编写计算特定 table 分区数量的查询? pg_partitions 的 oracle 等价物是什么?

取决于您拥有的权限

您拥有的 table 的分区

select count(*) from user_tab_partitions where table_name = yourtable;

您拥有或有权查看的 table 的分区

select count(*) from all_tab_partitions where table_name = yourtable and table_owner = ownerofthetable ;

如果您拥有 select any dictionaryselect catalog role 权限,或者被授予对特定 dba_tab_partitions 视图的权限,则

select count(*) from dba_tab_partitions where table_name = yourtable and table_owner = ownerofthetable ;