Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

Ошибка при обновлении БД ORA-02293: невозможно подтвердить (SUPERMAG.SMCPRICEROUNDMODE) : Супермаг Плюс (Супермаг 2000)

10.10.2024 10:10


29.09.2024 17:52
Доброго всем воскресного вечера.

Версия СМ 1.029.2 СП6, установил СМ 1.030.0 чтобы через Генератор БД "поднять" версию базы. Но в процессе появляется следующая ошибка:



(0.02Мб)

Ход инициализации:
Подготовка к копированию ресурсов.
Копирование ресурсов.
SchemaSys
InitProc
Модернизация версии 1.029.2.
PreUpgrade
1.029.3\schemasys
1.029.3\29_2To29_3_a

.......................................

ошибка в строке 1:
ORA-20012: Ошибка создания ограничения SMCPriceRoundMode для SMDocuments.
ORA-06512: на "SUPERMAG.SMINITNEWCONSTRAINT", line 8
ORA-02293: невозможно подтвердить (SUPERMAG.SMCPRICEROUNDMODE) - нарушено
правило проверки столбца
ORA-06512: на line 2

Может, кто-то сталкивался, или знает в чем проблема? База после смены названия, но генерацию в версии 029 проходит сходу и без проблем.
29.09.2024 18:04
ORA-02293: невозможно подтвердить (SUPERMAG.SMCPRICEROUNDMODE)
надо посмотреть код и понять, что мешает...
29.09.2024 18:14
Цитата:
OlegON ORA-02293: невозможно подтвердить (SUPERMAG.SMCPRICEROUNDMODE)
надо посмотреть код и понять, что мешает...
Не подскажете, как посмотреть?
29.09.2024 18:37
Думаю, если получится найти 1.029.3 - возможно, что-то и получится. Проблема в том, что ни в хранилище ни в ftp этой версии нет.
29.09.2024 21:46
Один из вариантов - посмотреть на той версии, на которой удалось удачно обновиться. Второй - во время инициализации скрипты распаковываются во временную директорию, там перехватить и смотреть.
01.10.2024 11:53
Цитата:
OlegON Один из вариантов - посмотреть на той версии, на которой удалось удачно обновиться. Второй - во время инициализации скрипты распаковываются во временную директорию, там перехватить и смотреть.
Выцепил скрипт, нашел в нем следующий код, выполняя который, как я понял, и создает ошибку:

prompt ***** Documents.sql *****;
begin
SMInitNewConstraint('SMDocuments', 'SMCPriceRoundMode',
'check ((DocType in (''WI'',''WO'',''BI'')
and PriceRoundMode in (1,2,3,4))
or (DocType in (''CS'', ''CR'', ''CI'', ''DO'')
and PriceRoundMode = 3)
or (DocType in (''PE'',''PO'',''PN'')
and PriceRoundMode in (2,4))
or (DocType not in (''WI'', ''WO'', ''BI'',
''CS'', ''CR'', ''CI'',
''PE'', ''PO'', ''PN'')
and PriceRoundMode = 0))');
end;
/
commit;
-- end Documents.sql

Я так понимаю, что-то из указанных в коде "чеков" не проходит проверку. Просто не совсем понимаю, как узнать, что именно. Пробовал select-ом отобразить SMCPriceRoundMode и SMDocuments, но получал ответ, что таблица или представление пользователя не существует.
01.10.2024 18:44
Предположим, что скрипт ругается на данные из таблицы SMDocuments. Как ее можно посмотреть/получить оттуда данные через sqlplus?
01.10.2024 18:46
Если вы не знаете как запросом посмотреть данные в табличке...
Вам лучше обратиться к людям которые умеют...
Иначе вы можете что то сильно поломать...
01.10.2024 18:53
Цитата:
baggio Если вы не знаете как запросом посмотреть данные в табличке...
Вам лучше обратиться к людям которые умеют...
Иначе вы можете что то сильно поломать...
по такой логике нужно сидеть дома и ничего не делать...
01.10.2024 18:54
лучше приводить полностью запрос и вывод, а не "что-то пробовал и не вышло", как подключился, какой запрос?
Часовой пояс GMT +3, время: 10:10.

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