統計oracle分區表各個分區的數據條數


建立分區表LOAN,插入數據

create table LOAN
(
  name                VARCHAR2(30),
  BILL_NO             VARCHAR2(30) not null,
  DATE1               NUMBER(8) not null
)
PARTITION BY RANGE(date1) INTERVAL(100)
  (
    PARTITION  PART1 VALUES LESS THAN (20190601)      
   tablespace USERS
   pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 20M
      next 1M
      minextents 1
      maxextents unlimited
    )
  );

insert into loan (bill_no,date1) values ('wq3333243',20190209);
insert into loan (bill_no,date1) values ('wq3333243',20200209);
insert into loan (bill_no,date1) values ('wq3333243',20200215);
insert into loan (bill_no,date1) values ('wq3333243',20200225);
insert into loan (bill_no,date1) values ('wq3333666',20220305);
insert into loan (bill_no,date1) values ('wq3333666',20220405);
insert into loan (bill_no,date1) values ('wq3333545',20220605);
insert into loan (bill_no,date1) values ('wq3333545',20220601);
insert into loan (bill_no,date1) values ('wq3333545',20220616);
insert into loan (bill_no,date1) values ('wq3333545',20220643);
insert into loan (bill_no,date1) values ('wq3333545',20220703);
insert into loan (bill_no,date1) values ('wq3333545',20220916);

使用pl/sql代碼統計數量

 1 declare
 2       CURSOR CUR_01 IS select * from user_tab_partitions where table_name='LOAN';
 3       CUR_02 CUR_01%ROWTYPE; 
 4       a1 number(2);
 5       sql01 varchar2(150);
 6      
 7     BEGIN 
 8       FOR CUR_02 IN CUR_01 LOOP  
 9          
10        sql01 := 'select count(1)  from LOAN partition('||CUR_02.PARTITION_NAME||') ';
11        EXECUTE IMMEDIATE sql01 INTO a1 ;
12         DBMS_OUTPUT.PUT_LINE('分區名:'||CUR_02.PARTITION_NAME ||'  數量:'|| a1);
13       END LOOP
14   end;

注意第10行要使用動態sql,不能直接傳分區名,結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM