AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.02.2009, 12:50   #1  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Ошибка при синхронизации таблицы
Привет всем. При попытке синхронизации таблицы выдается:
Info Синхронизация Описание ошибки SQL: ORA-01408: этот список столбцов уже индексирован

Info Синхронизация Оператор SQL: CREATE UNIQUE INDEX I_212RENAMEACCOUNTNUM4 ON LEDGERJOURNALTRANS (SUBSTR(NLS_LOWER(DATAAREAID),1,3),RECID) COMPUTE STATISTICS TABLESPACE AXLIVEIDX
Error Синхронизация Ошибки во время синхронизации базы SQL со словарем данных системы.
Операция закончилась неудачно.
Info Синхронизация Синхронизация 1 таблиц закончилась неудачно

Причем индекс не уникальный. После удаления индекса все синхронизируется. Пытаюсь импортировать с идентификаторами из другого приложения - опять ошибка. И еще SUBSTR(NLS_LOWER(DATAAREAID),1,3),RECID) - это я так понимаю список полей. dataarea видимо добавляется автоматически, но тут не хватает одного поля AssetDebAccountNum_RU. В другом приложении, как и положено - 3 индекса:
AXDEV.I_212RENAMEACCOUNTNUM4
SYS_NC00197$ 1
SYS_NC00201$ 2 // тоже какое то странное название (должно быть, наверное, AssetDebAccountNum_RU)
RECID

Подскажите, пожалуйста, что еще тут можно сделать?
Старый 27.02.2009, 15:13   #2  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Привет всем. При попытке синхронизации таблицы выдается:
Info Синхронизация Описание ошибки SQL: ORA-01408: этот список столбцов уже индексирован

Info Синхронизация Оператор SQL: CREATE UNIQUE INDEX I_212RENAMEACCOUNTNUM4 ON LEDGERJOURNALTRANS (SUBSTR(NLS_LOWER(DATAAREAID),1,3),RECID) COMPUTE STATISTICS TABLESPACE AXLIVEIDX
Error Синхронизация Ошибки во время синхронизации базы SQL со словарем данных системы.
Операция закончилась неудачно.
Info Синхронизация Синхронизация 1 таблиц закончилась неудачно

Причем индекс не уникальный. После удаления индекса все синхронизируется. Пытаюсь импортировать с идентификаторами из другого приложения - опять ошибка. И еще SUBSTR(NLS_LOWER(DATAAREAID),1,3),RECID) - это я так понимаю список полей. dataarea видимо добавляется автоматически, но тут не хватает одного поля AssetDebAccountNum_RU. В другом приложении, как и положено - 3 индекса (3 поля в индексе наверное имелось ввиду?):
AXDEV.I_212RENAMEACCOUNTNUM4
SYS_NC00197$ 1
SYS_NC00201$ 2 // тоже какое то странное название (должно быть, наверное, AssetDebAccountNum_RU)
RECID

Подскажите, пожалуйста, что еще тут можно сделать?
Описание ошибки достаточно исчерпывающее, оракл не обманывает. (этот список столбцов уже индексирован), это значит что у вас уже есть другой индекс с таким набором столбцов. В вашем случае это действительно dataareaid и recid, судя приведённому DDL по созданию индекса. (dataareaid, естественно, добаволяется автоматически, всё верно).
Поля типа SYS_NC00197$ - это следствие функциональных индексов, при создании FBI создаются скрытые столбцы в таблице и они же индексируются (обсуждалось не так давно вскользь на форуме тут).

А теперь по существу:
Зная ваши приколы, ничего конкретного сказать не возьмусь. (подробности тут:Ошибка дублирования индекса
В нормальной ситуации такая ошибка возникать не должна, в вашей же - может быть всё что угодно и похоже кроме тов-ща db здесь никто о вашей системе ничего толком не знает... Наверняка причина в том, что у вас "рассинхронизировны" индексы в БД и в Аксапте. (хотя бы потому что вы утверждаете что в БД в индексе 3 колонки, а в аксапте импортируется только 2)...
__________________
Zhirenkov Vitaly
Старый 27.02.2009, 15:19   #3  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
ZVV
вобщем то все заработало. Оказалось, я выключил один из конф. ключей, родителя у него нет, подчиненных тоже нет. К этой таблице он тоже никаким обрзом не относится. Так после включения, все синхронизируется нормально. При выключенном ключе, аксапта пытается создать индекс другим скриптом (как раз тем, который создает уже существующий индекс).
Вьюшек, ускоряющих синхронизацию, в базе нет.
Какая тут связь, непонятно...

А все, разобрался, связь была. Ключ висит на одном из полей индекса. Поэтому после отключения, поле пропадает и получаем дублирующийся индекс.

Последний раз редактировалось Eldar9x; 27.02.2009 в 15:23.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Пересоздание таблицы при синхронизации Serg16 DAX: Администрирование 1 26.08.2009 13:55
Ошибка синхронизации Alexandr A. Osipkin DAX: Администрирование 2 22.06.2007 10:35
Ошибка синхронизации axapta25Dev DAX: Администрирование 4 21.02.2007 01:02
Ошибка синхронизации при накате SP4 EE FP1 Silence DAX: Администрирование 11 07.03.2006 18:27
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:41.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.