1-12cr2-پارتیشن-بندی-external-table/" target="_blank" rel="noopener">Hybrid Partitioned Table 1 جدیدی است که اوراکل در نسخه 19c ارائه کرده است با کمک این قابلیت می توان 1 یک جدول، تلفیقی از پارتیشنهای external و internal را ایجاد کرد.
این روش از پارتیشن بندی، صرفا متدهای Range و List را پشتیبانی می کند البته در نسخه 19c امکان استفاده از متد Automatic List برای Hybrid Partitioned Table وجود ندارد و این امکان از نسخه 23c به وجود آمد.
بنابرین از این نسخه(23c) می توانیم برای 1 Hybrid Partitioned Table از قابلیت Automatic List Partitioning استفاده کنیم.
قبل از ایجاد جدول مورد نظر، دایرکتوری مربوط به دیتایی که در سیستم عامل قرار دارند را ایجاد می کنیم:
SQL> create directory E_PARTITIONs as '/PARTITIONs'; Directory created
جدول mytbl از نوع 1 است و به روش 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
برچسب:
نویسنده: خنجی