Как создать раздел в функциональном индексе в oracle? - PullRequest
0 голосов
/ 12 января 2020

я пытаюсь создать раздел по функциональному индексу в 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;

1 Ответ

1 голос
/ 12 января 2020

Создайте виртуальные столбцы на вашей таблице:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...