Hybrid Partitioned Table قابلیت جدیدی است که اوراکل در نسخه 19c ارائه کرده است با کمک این قابلیت می توان برای یک جدول، تلفیقی از پارتیشنهای external و internal را ایجاد کرد.
این روش از پارتیشن بندی، صرفا متدهای Range و List را پشتیبانی می کند البته در نسخه 19c امکان استفاده از متد Automatic List برای Hybrid Partitioned Table وجود ندارد و این امکان از نسخه 23c به وجود آمد.
بنابرین از این نسخه(23c) می توانیم برای جداول Hybrid Partitioned Table از قابلیت Automatic List Partitioning استفاده کنیم.
قبل از ایجاد جدول مورد نظر، دایرکتوری مربوط به دیتایی که در سیستم عامل قرار دارند را ایجاد می کنیم:
SQL> create directory E_PARTITIONs as '/PARTITIONs'; Directory created
جدول mytbl از نوع هیبریدی است و به روش Automatic List پارتیشن بندی شده است:
SQL> CREATE TABLE mytbl 2 ( 3 national_id NUMBER, 4 name VARCHAR2(20), 5 last_name VARCHAR2(20), 6 org_id NUMBER 7 ) 8 EXTERNAL PARTITION ATTRIBUTES( 9 TYPE ORACLE_LOADER 10 DEFAULT DIRECTORY E_PARTITIONs 11 ACCESS PARAMETERS 12 ( 13 FIELDS TERMINATED BY ',' (national_id,name,last_name,org_id) 14 ) 15 REJECT LIMIT UNLIMITED 16 ) 17 PARTITION BY LIST (org_id) AUTOMATIC 18 ( 19 PARTITION p1 VALUES (1), 20 PARTITION p2 VALUES (2), 21 PARTITION p_external VALUES (3) EXTERNAL LOCATION('part1.txt') 22 ); Table created
در صورت فعال نبودن قابلیت Automatic List Partitioning، ستون org_id صرفا مقادیر 1، 2 و 3 را قبول می کرد اما با استفاده از این قابلیت، مقادیر دیگر را هم می پذیرد:
SQL> insert into mytbl values(100,’Reza’,’Alizadeh’,1); 1 row inserted SQL> insert into mytbl values(105,'Payan','Rafat',47); 1 row inserted SQL> select * from mytbl; NATIONAL_ID NAME LAST_NAME ORG_ID ----------- -------------------- -------------------- ---------- 100 Armin Bahamin 1 101 Jamshid Sabet 3 102 Ramtollah Rabbani 50 103 Abbas Hamidian 47 104 Arash Ezzati 50 105 Ali Fazli 47 6 rows selected
تعداد پارتیشنهای این جدول را در قسمت زیر مشاهده می کنید:
SQL> select table_name,partition_name from user_tab_partitions; TABLE_NAME PARTITION_NAME ---------- --------------- MYTBL P2 MYTBL P1 MYTBL SYS_P1043
همچنین ایجاد این جدول در نسخه 21c با خطای زیر مواجه خواهد شد:
ERROR at line 18: ORA-30657: operation not supported on external organized table