【问题标题】:Why does it say ORA-14006: invalid partition name?为什么它说 ORA-14006:无效的分区名称?
【发布时间】:2021-03-14 04:35:39
【问题描述】:

我在版本 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”处给出红色下划线。

【问题讨论】:

  • 另外,没有第 13 版的 Oracle。有Oracle 12c。和甲骨文 19c。
  • @TimBiegeleisen 我已经更正了代码。对不起,我是stackoverflow的新手。 pl/sql 开发者版本是 13。
  • PL/SQL 是一种编程语言,PL/SQL Developer 是一种桌面开发工具。不过,两者都与问题无关。重要的是您的 Oracle 版本。

标签: oracle ddl database-partitioning


【解决方案1】:

Converting a Non-Partitioned Table to a Partitioned Table 需要 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

【讨论】:

    猜你喜欢
    • 2018-12-18
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    相关资源
    最近更新 更多