Thứ Sáu, 16 tháng 4, 2021

Split Partition trong Oracle Database

Mục đích: Khi tạo partition từ 01/01/2021-31/12/2021 mà lại cần các partition 01/01/2020-31/12/2020 thì sẽ không add thêm partition vào được do min partition là 01/01/2021. 

Giải pháp:  split partition của Oracle Database

Các câu lệnh hay sử dụng:

-- Chia partition data20210101 thành data20201231 và data20210101
ALTER TABLE BINHTV.TAB1
  SPLIT PARTITION data20210101 AT  (TO_DATE('2022-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
  INTO (PARTITION data20201231,
        PARTITION data20210101);   

--Script chia partion cả năm 2020 từ 01/01/2020-31/12/2020
DECLARE
   v_nam          NUMBER (4) := 2020;
   v_owner        varchar2 (50) := 'BINHTV';
   v_tablename    VARCHAR2 (50) := 'TAB1';
   v_date_from   date    := to_date('01/01/2020','dd/mm/yyyy');
   v_date_to     date    := to_date('31/12/2020','dd/mm/yyyy');
   v_numday     number(5);
   v_tablespace varchar2(50):='DATA';
BEGIN
   v_numday:=v_date_to-v_date_from; 
   FOR i IN 0 .. v_numday
   LOOP
      DBMS_OUTPUT.put_line ('alter table '||v_owner||'.'|| v_tablename || ' SPLIT PARTITION DATA'
      ||to_char(v_date_to-i,'YYYYMMDD')||' 
      AT  (TO_DATE('''|| to_char(v_date_to-i,'YYYY-MM-DD')||' 00:00:00'',''SYYYY-MM-DD HH24:MI:SS'', ''NLS_CALENDAR=GREGORIAN'')) INTO (PARTITION DATA'|| to_char(v_date_to-i-1,'YYYYMMDD')
      ||' tablespace DATA'||to_char(v_date_to-i-1,'YYYY') ||'_RW, partition data'||to_char(v_date_to-i,'YYYYMMDD') ||' tablespace data'||to_char(v_date_to-i,'YYYY')||');');
   END LOOP;
END;   

-- Split partition ó update global index
ALTER TABLE BINHTV.TAB2
  SPLIT PARTITION DATA20140410 AT  (TO_DATE(' 2014-04-10 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
  INTO (PARTITION DATA20140409,
        PARTITION DATA20140410)
  UPDATE GLOBAL INDEXES;

-- Split partition theo số
ALTER TABLE SPLIT PARTITION p0 INTO 
  (PARTITION p01 VALUES LESS THAN (25),
   PARTITION p02 VALUES LESS THAN (50), 
   PARTITION p03 VALUES LESS THAN (75),
   PARTITION p04);

Link tham khảo thêm: https://docs.oracle.com/database/121/VLDBG/GUID-01C14320-0D7B-48BE-A5AD-003DDA761277.htm
=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
hoặc
https://bit.ly/oaz_fp

=============================
học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle dataguard, oracle goldengate, oracle weblogic, oracle exadata, hoc solaris, hoc linux, hoc aix

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master