| 
			
			 | 
		#1 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
			
			
			Ошибка дублирования индекса
			 
			
			Помогите решить задачу. 
		
		
		
		
		
		
		
		
			На одной из недавно созданных таблиц при попытке ее синхронизации выдается следующее: Цитата: 
	
		
			Невозможно выполнить команду языка определения данных в "" (""). 
База данных 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.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Если данные в тадлице есть, то оставить в таблице только одну запись, которая соответствует уникальному индексу. Удалить руками или джобом дублируемые записи. Система врать не будет  
		
		
		
		
		
		
		
		
			  Записи дублируются.Либо грохнуть таблицу в АОТе и потом руками на Оракле(если оракл такое позволяет) и по новой залить таблу. Либо руками создать таблицу, и возможно, найдете косяк. Последний раз редактировалось Sada; 10.12.2008 в 13:53.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Eldar9x (2). | |
| 
			
			 | 
		#3 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Записи и на самом деле дублировались, вроде как. После удаления все синхронизируется. Таблица находится в коллекции и создана виртуальная компания. После создания нескольких строк таблица опять не синхронизируется. Что можно тут сделать?
		 
		
		
		
		
		
		
		
		
			Последний раз редактировалось Eldar9x; 10.12.2008 в 14:21.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну тут дебагер Вам в помощь  
		
		
		
		
		
		
		
	 . Мучайте класс, который пихает туда данные. Другого в голову не приходит....
		 | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А извиняюсь, пакетник не причем. При ручном создании записей происходит то же самое.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Нуэ мне отсуда не видать, Вы уж тоже меня простите. Но проанализировать данные - какие поля чем и как заполняются, то мы Вам не поможем. Тем более все поля смотреть не нада, а тока поля с индекса.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			ЗЫ: Может они просто пустыми значениями заполняются. Вот вторая строка с пустыми значениями будет ругаться.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Добрый день. У вас случайно recid на второй круг не пошли, 
		
		
		
		
		
		
		
	т.е. при создании новой записи смотрит что запись с таким recid есть вот и ругается Если да то тогда дефрагментация recid  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			У вас случайно recid на второй круг не пошли,
		
	 
Цитата: 
	
		
			Может они просто пустыми значениями заполняются
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 MCITP 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Мне кажется что-то тут не о том речь идёт... 
		
		
		
		
		
		
			Цитата: 
	
		
			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  | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 MCITP 
		
			
	 | 
	
	
	
		
		
			
			 
			
			какая-то фантастика, похоже на баг какой-то со стороны аксапты... 
		
		
		
		
		
		
			а вы пробовали пересоздать эту таблицу? должно наверное помочь... а индекс этот на recid вы сами создаёте, или он создаётся автоматом потому что CreateRecIdIndex = Да или нет других индексов на таблице?можно ещё с этим попробовать поиграццо... 
				__________________ 
		
		
		
		
	Zhirenkov Vitaly  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Попробуйте тогда запустить. Синхронизацию с проверкой(Администрирование,Переодические операции, SQL администрирование, Таблицы, Проверить/Сихронизировать) 
		
		
		
		
		
		
		
	Снять галки на "Только диагностика","Управляемая пользователем проверка","Упрощенная проверка массивов","Печатать отчет","Печатать неисправленные ошибки", хотя печать можно оставить. Все остальные должны стоять  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 MCITP 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Check/Syncronyze ещё есть кстати, может он поможет... 
		
		
		
		
		
		
			ЗЫ Упс... 
				__________________ 
		
		
		
		
	Zhirenkov Vitaly  | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Мне кажется что-то тут не о том речь идёт...
		
	 
Цитата: 
	
		
			а вы пробовали пересоздать эту таблицу?
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Роман Долгополов (RDOL) 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вы кажется по поводу "Долгой синхронизации" делали как я писал в этой теме. И кажется чуть чуть подправили мой код, который вызывает обновление материализованных вьюшек. Может дело в этом "чуть чуть"?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Вы кажется по поводу "Долгой синхронизации" делали как я писал в этой теме. И кажется чуть чуть подправили мой код, который вызывает обновление материализованных вьюшек. Может дело в этом "чуть чуть"?
		
	 
Последний раз редактировалось Eldar9x; 10.12.2008 в 15:08.  | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Роман Долгополов (RDOL) 
		
			
	 | 
	
	
	
		
		
		
		 
			
			так вьюхи эти материализованные то в базе есть что ли? тогда если в приложении вызовов обновления нету, то и аксапта видит "малость" не то, что есть на самом деле. либо удалите вьюхи, либо вызываете обновление
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Eldar9x (2). | |
| 
			
			 | 
		#18 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			так вьюхи эти материализованные то в базе есть что ли? тогда если в приложении вызовов обновления нету, то и аксапта видит "малость" не то, что есть на самом деле. либо удалите вьюхи, либо вызываете обновление
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 Роман Долгополов (RDOL) 
		
			
	 | 
	
	
	
		
		
		
		 
			
			"малость не то" - это состояние индексов на момент последнего обновления вьюшек, а не их текущеее состяние  
		
		
		
		
		
		
		
	  Индекса давно нет, а во вьюшках он еще есть например, или наоборот - нет во вьюшках, а есть на самом деле, ну  и.т.да вообще эти вьюшки и три строчки кода работают уже пару лет на 8 разных промышленных инсталляциях и хз скока тестовых/девелоперских. кроме как подтормаживания сохранения объектов побочных эффектов не было. Я потому и спросил про доработки с вызовом обновления - уже не помню какие точно, но изначально проблемы были с условным вызовом обновления. Я то же пытался вызывать в зависимости от параметров dbSynchronize, но потом нарвавшись на подобные грабли оставил безусловное обновление  | 
| 
	
 | 
| 
			
			 | 
		#20 | 
| 
			
			 MCITP 
		
			
	 | 
	
	
	
		
		
			
			 
			
			какие интересные подробности выясняются....
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Zhirenkov Vitaly  | 
| 
	
 |