31.10.2009 14:23
Dim
 
делаю
alter table SUPERMAG.SMCASHDISCCARD enable validate constraint SMCASHDISCCARD_CHECK

в ответ получаю
ORA-02298: cannot validate (SUPERMAG.SMCASHDISCCARD_CHECK) - parent keys not found

Как лечить?
31.10.2009 15:02
Dim
 
вдогонку... не принимается z-отчет, по которому есть продажи по дисконтным картам. ошибка такая:

Цитата:
В работе кассового модуля произошел сбой. Сообщения об ошибках см. ниже.
Запись 1. Код=80004005h (0) [SMUKMD~1]:
Ошибка при попытке импорта записи из таблицы CASHDCRD. Ключ записи "ShopIndex=2,CashNumber=4,ZNumber=710,CheckNumber=39,CardType=1,CardNumber=2999999999991".

Запись 2. Код=80040e2fh (1) [Microsoft OLE DB Provider for Oracle]:
ORA-00001: нарушено ограничение уникальности (SUPERMAG.SMCASHDISCCARD_PK)


Запись 3. Код=80004005h (0) [SmLibaryBase trace]:
insert into Supermag.SMCASHDISCCARD(LocID,DeskNum,ZNum,CheckNum,Code,DiscSum)
values(2,4,710,39,'2999999999991',TO_NUMBER('5,17','9D99','NLS_NUMERIC_CHARACTERS='','''))
оптимайзер прогонял - ошибка как в первом сообщении о невозможности включить констрейнт.
31.10.2009 16:16
Dim
 
Oracle 8 кстати... запрос
Цитата:
select * from supermag.smcashdisccard t where t.code not in (select code from supermag.smdiscpers);
выдает, что "строки не выбраны"...
31.10.2009 16:58
OlegON
 
Что-то я не соображаю, намешал все в кучу... В первом сообщении не включается и честно сообщает, что в чеках не хватает соответствующего чека. Во втором - лепит неуникальную запись по скидке. Ты зачем констрейнты отключал?
31.10.2009 17:20
Dim
 
я не отключал. все началось 27 октября. перестали приниматься z-отчеты с руганью типа нарушен уникальный индекс.
скачал оптимайзер, прогнал, ругнулся на невозможность включить констрейнт.
что сделал... удалил все данные по z-отчетам с 27 октября. вручную вычистил соответствующие записи в smcashdisccard. пытаюсь включить констрейнт - не включается.
31.10.2009 19:22
OlegON
 
Я предполагаю, что в SMCASHDISCCARD лишние записи, на которые ругается констрейнт и при приеме эти же записи еще и дублироваться пытаются.
31.10.2009 19:36
OlegON
 
думаю, так
Цитата:
select locid,desknum,checknum,znum from smcashdisccard minus select locid,desknum,checknum,znum from smcashchecks;
31.10.2009 21:08
Dim
 
резюмирую...
когда и кем был отключен констрейнт - неизвестно.
проблема была в записи в таблице smcashdisccard при отсутствующем чеке в таблице smcashchecks. отсутствовал чек за 12 декабря 2008 г. после удаления записи из таблицы smcashdisccard констрейнт включился. данных за 12 декабря по этой кассе нет вообще.

ЗЫЖ Спасибо Олегу.... в очередной раз ))
Часовой пояс GMT +3, время: 07:55.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.