db2 создать индекс, но нажать SQLSTATE = 42703 - PullRequest
0 голосов
/ 16 октября 2018

У меня успешно создана таблица.

1 имени столбца равно code, а еще одно «удалено».

Таким образом, я планирую использовать это 2 поля для созданияего индекс.Я делаю что-то вроде следующего:

CREATE INDEX SADM.IDX_SC_IDX1 on SADM.SC ("code" ASC, "DELETED") ALLOW REVERSE SCANS;

Это нормально работает в моем регионе.Однако я получаю эту ошибку в UAT:

DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0205N  Column, attribute, or period "code" is not defined in
"SADM.SC".  SQLSTATE=42703

Я дважды проверяю таблицу и подтверждаю, что столбец «code» или «удален» существует и совпадает с моим локальным.

Я считаю,что-то не так внутри, но я не могу найти основную причину.

Пожалуйста, сообщите.

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Согласно моему комментарию.Вы используете двойные кавычки вокруг имен столбцов, в которых регистр столбцов (прописные и строчные) должен совпадать между определением таблицы и определением индекса.

0 голосов
/ 16 октября 2018

Обязательно назовите столбцы, как они были созданы и перечислены в системном каталоге.Найдите имена столбцов в SYSCAT.COLUMNS (для большинства версий Db2).Если вы не используете кавычки, Db2 по умолчанию преобразует идентификаторы в верхний регистр.Однако, если вы используете кавычки, на них всегда нужно ссылаться точно так, как написано.

«Код» отличается от «Код», «Код» или «Код».Таким образом, проверьте, как столбец действительно назван.

...