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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.12.2008, 12:51   #1  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Ошибка дублирования индекса
Помогите решить задачу.
На одной из недавно созданных таблиц при попытке ее синхронизации выдается следующее:
Цитата:
Невозможно выполнить команду языка определения данных в "" ("").
База данных SQL обнаружила ошибку.
Описание ошибки SQL: ORA-00955: имя уже задействовано для существующего объекта
Оператор SQL: CREATE UNIQUE INDEX I_50958RECID ON AA_BATCHTESTINGLOG (SUBSTR(NLS_LOWER(DATAAREAID),1,3),RECID) COMPUTE STATISTICS TABLESPACE STDIDXTS
Ошибки во время синхронизации базы SQL со словарем данных системы.
Операция закончилась неудачно.
Синхронизация 1 таблиц закончилась неудачно
На других новых таблицах все нормально проходит.
Удаляю индекс через SQL Plus, синхронизирую - все нормально. Повторно синхронизирую - та же ошибка.
Что можно сделать, кроме того как просто удалить таблицу или программно удалять индекс перед синхронизацией?

Oracle 10g Ax 3.0 SP5 KR3

В итоге, удалил таблицу. Странно, импортировал, другую таблицу с тем же идентификатором, ее синхронизация проходит нормально.

Последний раз редактировалось Eldar9x; 10.12.2008 в 13:20.
Старый 10.12.2008, 13:49   #2  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Если данные в тадлице есть, то оставить в таблице только одну запись, которая соответствует уникальному индексу. Удалить руками или джобом дублируемые записи. Система врать не будет Записи дублируются.
Либо грохнуть таблицу в АОТе и потом руками на Оракле(если оракл такое позволяет) и по новой залить таблу. Либо руками создать таблицу, и возможно, найдете косяк.

Последний раз редактировалось Sada; 10.12.2008 в 13:53.
За это сообщение автора поблагодарили: Eldar9x (2).
Старый 10.12.2008, 14:19   #3  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Записи и на самом деле дублировались, вроде как. После удаления все синхронизируется. Таблица находится в коллекции и создана виртуальная компания. После создания нескольких строк таблица опять не синхронизируется. Что можно тут сделать?

Последний раз редактировалось Eldar9x; 10.12.2008 в 14:21.
Старый 10.12.2008, 14:22   #4  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Ну тут дебагер Вам в помощь . Мучайте класс, который пихает туда данные. Другого в голову не приходит....
Старый 10.12.2008, 14:25   #5  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
А извиняюсь, пакетник не причем. При ручном создании записей происходит то же самое.
Старый 10.12.2008, 14:32   #6  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Нуэ мне отсуда не видать, Вы уж тоже меня простите. Но проанализировать данные - какие поля чем и как заполняются, то мы Вам не поможем. Тем более все поля смотреть не нада, а тока поля с индекса.
Старый 10.12.2008, 14:33   #7  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
ЗЫ: Может они просто пустыми значениями заполняются. Вот вторая строка с пустыми значениями будет ругаться.
Старый 10.12.2008, 14:35   #8  
anikulichev is offline
anikulichev
Участник
 
76 / 23 (1) +++
Регистрация: 26.12.2002
Адрес: г.Москва
Добрый день. У вас случайно recid на второй круг не пошли,
т.е. при создании новой записи смотрит что запись с таким recid есть вот и ругается
Если да то тогда дефрагментация recid
Старый 10.12.2008, 14:40   #9  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
У вас случайно recid на второй круг не пошли,
да вряд-ли база почти пустая, ну может десяток таблиц от силы заполнено... RecId выделяются сейчас с 4500
Цитата:
Может они просто пустыми значениями заполняются
Удалил из таблицы все поля. RecId, если судить по обозревателю, разные. Достаточно одно записи, чтобы появилась ошибка.
Старый 10.12.2008, 14:43   #10  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Мне кажется что-то тут не о том речь идёт...

Цитата:
ORA-00955 name is already used by an existing object
Cause: An attempt was made to create a database object (such as a table, view,
cluster, index, or synonym) that already exists. A user’s database objects must
have distinct names.
Action: Enter a unique name for the database object or modify or drop the
existing object so it can be reused.
Т.е. проблемв в том, что аксапта почему-то не понимает, что индекс уже в оракле есть.

А если бы проблема была в дублировании уникального значения в поле таблице, то при создании уникального индексы вы бы получили совсем другую ошибку:
Цитата:
ORA-01452 cannot CREATE UNIQUE INDEX; duplicate keys found
Cause: A CREATE UNIQUE INDEX statement specified one or more columns
that currently contain duplicate values. All values in the indexed columns must
be unique by row to create a UNIQUE INDEX.
Action: If the entries need not be unique, remove the keyword UNIQUE from
the CREATE INDEX statement, then re-execute the statement. If the entries
must be unique, as in a primary key, then remove duplicate values before
creating the UNIQUE index.
__________________
Zhirenkov Vitaly
Старый 10.12.2008, 14:48   #11  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
какая-то фантастика, похоже на баг какой-то со стороны аксапты...

а вы пробовали пересоздать эту таблицу? должно наверное помочь...

а индекс этот на recid вы сами создаёте, или он создаётся автоматом потому что CreateRecIdIndex = Да или нет других индексов на таблице?можно ещё с этим попробовать поиграццо...
__________________
Zhirenkov Vitaly
Старый 10.12.2008, 14:49   #12  
anikulichev is offline
anikulichev
Участник
 
76 / 23 (1) +++
Регистрация: 26.12.2002
Адрес: г.Москва
Попробуйте тогда запустить. Синхронизацию с проверкой(Администрирование,Переодические операции, SQL администрирование, Таблицы, Проверить/Сихронизировать)

Снять галки на "Только диагностика","Управляемая пользователем проверка","Упрощенная проверка массивов","Печатать отчет","Печатать неисправленные ошибки", хотя печать можно оставить.

Все остальные должны стоять
Старый 10.12.2008, 14:53   #13  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Check/Syncronyze ещё есть кстати, может он поможет...

ЗЫ Упс...
__________________
Zhirenkov Vitaly
Старый 10.12.2008, 14:56   #14  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
Мне кажется что-то тут не о том речь идёт...
Странное тогда поведение. Синхронизируется, либо если все строки удалить, либо удалить вручную этот индекс... Мне кажется, дело в виртуальных компаниях. Потому что, если удалить таблицу из коллекции, то начинает работать правильно.
Цитата:
а вы пробовали пересоздать эту таблицу?
пробовал, все работает. Но после добавления в табличную коллекцую перестает.
Старый 10.12.2008, 15:00   #15  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Вы кажется по поводу "Долгой синхронизации" делали как я писал в этой теме. И кажется чуть чуть подправили мой код, который вызывает обновление материализованных вьюшек. Может дело в этом "чуть чуть"?
Старый 10.12.2008, 15:06   #16  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
Вы кажется по поводу "Долгой синхронизации" делали как я писал в этой теме. И кажется чуть чуть подправили мой код, который вызывает обновление материализованных вьюшек. Может дело в этом "чуть чуть"?
нет, на этом приложении я пока этого не делал. После синхронизации с проверкой попробую в качестве шаманства удалить вьюхи и индексы, вдруг поможет.

Последний раз редактировалось Eldar9x; 10.12.2008 в 15:08.
Старый 10.12.2008, 15:11   #17  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
так вьюхи эти материализованные то в базе есть что ли? тогда если в приложении вызовов обновления нету, то и аксапта видит "малость" не то, что есть на самом деле. либо удалите вьюхи, либо вызываете обновление
За это сообщение автора поблагодарили: Eldar9x (2).
Старый 10.12.2008, 15:32   #18  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
так вьюхи эти материализованные то в базе есть что ли? тогда если в приложении вызовов обновления нету, то и аксапта видит "малость" не то, что есть на самом деле. либо удалите вьюхи, либо вызываете обновление
точно, именно так и было, после удаления вьюшек, все заработало. db, поясните, пожалуйста, что значит "малость" не то? Хочется понять, в чем была проблема... Спасибо.
Старый 10.12.2008, 15:41   #19  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
"малость не то" - это состояние индексов на момент последнего обновления вьюшек, а не их текущеее состяние Индекса давно нет, а во вьюшках он еще есть например, или наоборот - нет во вьюшках, а есть на самом деле, ну и.т.д

а вообще эти вьюшки и три строчки кода работают уже пару лет на 8 разных промышленных инсталляциях и хз скока тестовых/девелоперских. кроме как подтормаживания сохранения объектов побочных эффектов не было. Я потому и спросил про доработки с вызовом обновления - уже не помню какие точно, но изначально проблемы были с условным вызовом обновления. Я то же пытался вызывать в зависимости от параметров dbSynchronize, но потом нарвавшись на подобные грабли оставил безусловное обновление
Старый 10.12.2008, 15:43   #20  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
:)
какие интересные подробности выясняются....
__________________
Zhirenkov Vitaly
Теги
oracle, синхронизация баз

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка (?) при печати приходного ордера в DAX 4.0 SP2 Ivanhoe DAX: Программирование 7 19.01.2021 14:13
Ошибка при обновлении моделей petergunn DAX: Программирование 1 08.12.2011 14:14
Ошибка в формате числа. 36AC DAX: Программирование 7 19.10.2006 10:04
Ошибка при обработке С-Ф Sergo DAX: Программирование 7 20.01.2006 11:56
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:10.