如何在oracle的功能索引中创建分区?

问题描述 投票:-2回答:1

im试图在oracle中的功能索引上创建分区,但是由于以下错误而失败。

错误:

ORA-30555:全局索引分区键是一个表达式

语法:

CREATE INDEX TMP_ARA_I9 ON TMP_ARA (
UPPER(JOB_TITLE) ASC,
   UPPER(COMPANY_NAME) ASC
   )
global PARTITION BY HASH ( UPPER(JOB_TITLE) ,
   UPPER(COMPANY_NAME) 
   ) PARTITIONS 4;
sql oracle indexing sqlperformance
1个回答
1
投票

在表上创建虚拟列:

ALTER TABLE TMP_ARA ADD (
   UPPER_JOB_TITLE VARCHAR2(20) GENERATED ALWAYS AS (UPPER(JOB_TITLE)) VIRTUAL,
   UPPER_COMPANY_NAME VARCHAR2(20) GENERATED ALWAYS AS (UPPER(COMPANY_NAME)) VIRTUAL
);

然后您可以在此处创建索引:

CREATE INDEX TMP_ARA_I9 ON TMP_ARA (
   UPPER_JOB_TITLE, UPPER_COMPANY_NAME
)
GLOBAL PARTITION BY HASH ( 
   UPPER_JOB_TITLE, UPPER_COMPANY_NAME
) PARTITIONS 4;
© www.soinside.com 2019 - 2024. All rights reserved.