我試圖用CTAS從非磁區表建立子磁區表,但我得到了錯誤。以下是我的資料ID IS PRIMARY KEY的類似例子:
TASK
ID START_DATE
1 22/09/21
2 21/09/21
3 20/09/21
這是我的代碼 :
CREATE TABLE EMPLOYEE AS
(SELECT * FROM TASK)
PARTITION BY RANGE ( "START_DATE")
子部分 BY LIST("ID")
磁區 P1 VALUES小于TO_DATE('20210920','YYYYMMDD') (
SUBPARTITION S1 VALUES (1),
分組S2 VALUES (2)。
子部分S3 VALUES (3)
),
磁區 P2 VALUES小于TO_DATE('20210921','YYYYMMDD') (
分組S4 VALUES (1)。
子部分S5 VALUES(2)。
子部分S6 VALUES (3)
),
欄目P3 VALUES小于TO_DATE('20210922','YYYYMMDD') (
分組S7 VALUES (1)。
子部分S8 VALUES(2)。
子部分S9 VALUES (3)
),
部分 P4 VALUES 低于MAXVALUE (
SUBPARTITION S10 VALUES (1),
子部分S11 VALUES(2)。
子部分S12 VALUES (3)
)
我如何才能做到這一點,這對我來說很重要,我得到了這個錯誤,我想當我糾正它時,我將得到另一個錯誤:
00933. 00000 - "SQL命令沒有正確結束"
uj5u.com熱心網友回復:
一個例子
SQL> create table task ( id number , start_date date ) 。
Table創建。
SQL> CREATE TABLE t2
2 PARTITION BY RANGE (START_DATE)
3 SUBPARTITION BY LIST (ID)
4 (
5 PARTITION P1 VALUES 少于(TO_DATE('2021-07-20', 'YYYY-MM-DD'))
6 (
7 SUBPARTITION S1 VALUES (1)。
8 SUBPARTITION S2 VALUES (2)。
9 SUBPARTITION S3 VALUES (3)
10 )。)
11 PARTITION P2 VALUES 少于(TO_DATE('2021-08-20', 'YYYY-MM-DD'))
12 (
13 SUBPARTITION S4 VALUES (1)。
14 SUBPARTITION S5 VALUES (2)。
15 SUBPARTITION S6 VALUES (3)
16 )
17 )
18* as select * from 任務
SQL> /
Table創建。
考慮因素
- 在結構的最后使用運算式
as select * from xxx。 - 牢記每個磁區和子磁區構建的括號。
- 雖然我沒有使用 "select * from xxx "這個運算式,但我認為這是很重要的。
- 雖然我沒有把它放在我的例子上,但嘗試使用一個子磁區模板。
uj5u.com熱心網友回復:
我推薦一個INTERVAL磁區和子磁區模板。將是這個:
CREATE TABLE EMPLOYEE (
...
)
PARTITION BY RANGE (START_DATE) INTERVAL (INTERVAL '1' DAY)
子磁區 BY LIST (ID)
子磁區模板(
子磁區S1 VALUES (1)。
分組S2 VALUES (2)。
子部分S3 VALUES (3)
)
( PARTITION P_INITIAL VALUES 少于(TIMESTAMP '2021-09-01 00:00:00') 段落創建推遲)。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/334030.html
標籤:
