oracle修改分区间隔,oracle – 从范围分区到范围间隔

You can’t have NULL in the partition key column of an interval partitioned table(截至12.1):

Restrictions on Interval Partitioning

You can specify only one partitioning key column, and it must be of

NUMBER, DATE, FLOAT, or TIMESTAMP data type.

[…]

You cannot specify NULL values for the partitioning key column.

您不能将表达式用于分区键.但是,根据@Shoelace的建议,您可以使用虚拟列(包含表达式)作为分区列:

SQL> CREATE TABLE a (b NUMBER, comput_b NUMBER AS (NVL(b, 0)))

2 PARTITION BY RANGE (comput_b) (

3 PARTITION p0 VALUES LESS THAN (0),

4 PARTITION p1 VALUES LESS THAN (50),

5 PARTITION p2 VALUES LESS THAN (MAXVALUE)

6 );

Table created

SQL> INSERT INTO a(b) VALUES (1);

1 row inserted

SQL> INSERT INTO a(b) VALUES (11);

1 row inserted

SQL> INSERT INTO a(b) VALUES (51);

1 row inserted

SQL> INSERT INTO a(b) VALUES (null);

1 row inserted

SQL> SELECT * FROM a;

B COMPUT_B

---------- ----------

1 1

11 11

0

51 51

在这种特殊情况下,我认为你需要一个表重建.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值