oracle - 为什么它说 ORA-14006:无效的分区名称?
问题描述
我在版本 13 的 Oracle PL/SQL 上使用了此代码
ALTER TABLE instrument_balance_hist MODIFY PARTITION BY RANGE( instrument_id ) INTERVAL (100)(
partition p1 VALUE LESS THAN (100),
partition p2 VALUE LESS THAN (200),
partition p3 VALUE LESS THAN (300),
partition p4 VALUE LESS THAN (400),
partition p5 VALUE LESS THAN (500),
partition p6 VALUE LESS THAN (600)
);
instrument_id 的数据类型是 number(6)。
它一直说无效的分区名称,并在“BY”处给出红色下划线。
解决方案
将非分区表转换为分区表需要 Oracle 12.2 或更高版本。此外,它是VALUES
,不是VALUE
。
create table instrument_balance_hist (instrument_id, somecol) as
select 100, 'Kittens' from dual union all
select 200, 'Puppies' from dual;
alter table instrument_balance_hist
modify partition by range (instrument_id) interval (100)(
partition p1 values less than (100),
partition p2 values less than (200),
partition p3 values less than (300),
partition p4 values less than (400),
partition p5 values less than (500),
partition p6 values less than (600)
);
with function highval(t varchar2, p varchar2) return varchar2 as
hv varchar2(4000);
begin
select high_value into hv
from user_tab_partitions
where table_name = t
and partition_name = p;
return hv;
end highval;
select partition_name
, highval(p.table_name, p.partition_name) as high_value
from user_tab_partitions p
where p.table_name = 'INSTRUMENT_BALANCE_HIST'
/
PARTITION_NAME HIGH_VALUE
-------------- ----------------
P1 100
P2 200
P3 300
P4 400
P5 500
P6 600
6 rows selected
推荐阅读
- ionic-framework - Ionic 4:设备问题构建
- node.js - 无法使用 mocha、chai 和 supertest 运行单元测试用例,得到:- 错误:ECONNREFUSED:连接被拒绝
- excel - Excel VBA Do While循环在目录文件夹和行数中
- scikit-learn - 使用 scikit learn 进行标签编码时如何保持自然顺序
- typescript - 如何基于类泛型定义泛型接口
- flutter - scoped_model 的用途/提供包(如果内置状态管理有效)
- php - ssh2_connect 定义显式 TLS
- postgresql - 在安装了 PostgreSQL 12.1 的 MacOS catalina 上的 virtualenv 中安装 psycopg2 是否有任何问题?
- html - 如何模糊背景
- jquery - select2下拉列表的jquery验证弹出位置问题