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;
在表上创建虚拟列:
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;