Страница 1 из 3
Нужен апдейт поля
Добавлено: 09 фев 2018, 19:59
igova
Добрый день.
Просьба помочь с апдейтом.
Re: Нужен Update поля в KATOS
Добавлено: 12 фев 2018, 12:24
igova
В саппорте не отрабатывает запрос:
Update KATOS
set KatOs.cInSpOrder = SPORDER.nrec
from katos, sporder, katsopr, sklorder
where KATOS.nrec = SPORDER.CSPORDER AND KATSOPR.nrec = SKLORDER.csopr AND SKLORDER.nrec = SPORDER.CSKLORDER AND KatOs.innum = KATSOPR.NAME AND KATSOPR.VIDSOPR = '101';
Что не так?
Re: Нужен Update поля в KATOS
Добавлено: 12 фев 2018, 14:23
Den
если платформа не первасив, то можно через прямой скуль( контструкция sql update) попробовать тоже самое.
Ну может еще в set двоеточие добавить перед =
Re: Нужен Update поля в KATOS
Добавлено: 14 фев 2018, 20:42
igova
Нашел ошибку - одна связь была с пустым полем - удалил.
Все отработало.
Update KATOS
where KatOs.innum = KATSOPR.NAME AND KATSOPR.nrec = SKLORDER.csopr AND SKLORDER.nrec = SPORDER.CSKLORDER
set KatOs.cInSpOrder := SPORDER.nrec;
Обновляет только одну запись в таблице.
Как правильно зациклить?
Re: Нужен Update поля в KATOS
Добавлено: 15 фев 2018, 11:04
m0p3e
Есть старый проверенный способ.
Код: Выделить всё
select ('update katos where nrec='+katos.nrec+' set katos.cInSpOrder:='+Sporder.nrec+';') from KATOS,SpOrder
where KatOs.innum = KATSOPR.NAME AND KATSOPR.nrec = SKLORDER.csopr AND SKLORDER.nrec = SPORDER.CSKLORDER
set KatOs.cInSpOrder := SPORDER.nrec to txt c:\UpdateKatos.lot;
Не проверял. Запрос приведен только для передачи сути идеи.
Re: Нужен Update поля в KATOS
Добавлено: 15 фев 2018, 19:52
igova
m0p3e писал(а):Есть старый проверенный способ.
Код: Выделить всё
select ('update katos where nrec='+katos.nrec+' set katos.cInSpOrder:='+Sporder.nrec+';') from KATOS,SpOrder
where KatOs.innum = KATSOPR.NAME AND KATSOPR.nrec = SKLORDER.csopr AND SKLORDER.nrec = SPORDER.CSKLORDER
set KatOs.cInSpOrder := SPORDER.nrec to txt c:\UpdateKatos.lot;
Не проверял. Запрос приведен только для передачи сути идеи.
Re: Нужен Update поля в KATOS
Добавлено: 16 фев 2018, 01:53
Den
Проблема в способе указаний связей между таблами
Код: Выделить всё
select ('update katos where nrec='+katos.nrec+' set katos.cInSpOrder:='+Sporder.nrec+';')
from KATOS,SpOrder,Sklorder,Katsopr
where ((
KATOS.CINSPORDER == SPORDER.nrec
and SPORDER.CSKLORDER == SKLORDER.nrec
and SKLORDER.csopr == katsopr.nrec
))
and katsopr.name = katos.innum
to txt c:\UpdateKatos.lot
;
Re: Нужен Update поля в KATOS
Добавлено: 16 фев 2018, 10:44
m0p3e
set забыл убрать.
В результате выполнения получаем готовый лот с построчным обновлением.
Re: Нужен Update поля в KATOS
Добавлено: 16 фев 2018, 11:18
igova
Ничего не выгружается - файл пустой.
В базе katos.cInSpOrder тоже пустой
Re: Нужен Update поля в KATOS
Добавлено: 16 фев 2018, 11:21
igova
Set убирал. Очень долго 'висит' запрос. Не выполняется.
Re: Нужен Update поля в KATOS
Добавлено: 16 фев 2018, 11:54
m0p3e
Значит запрос изначально неправильный.
Отлаживайте.
Re: Нужен апдейт поля
Добавлено: 16 фев 2018, 12:06
igova
Хм... Но одну запись то обновляет, если убрать select.
Re: Нужен Update поля в KATOS
Добавлено: 16 фев 2018, 12:09
Den
В ночи кнч не то написал.
KATOS.CINSPORDER == SPORDER.nrec не то конечно.
непонятно все же связь по KATOS.nrec = SPORDER.CSPORDER имеет место быть или нет . Если да, то заменить нужно на это
или только критерий связи неявный katsopr.name = katos.innum ?
И не ответили, как платформа у Вас
Re: Нужен Update поля в KATOS
Добавлено: 16 фев 2018, 12:16
igova
Критерий связи не явный katsopr.name = katos.innum . Платформа оракл. Но выполнить нужно через саппорт.
Re: Нужен Update поля в KATOS
Добавлено: 16 фев 2018, 12:23
Den
а у Вас всегда что ли в накладных таких одна спецификация ?
просто если не одна, то будет множественная связь и фигня тут будет KatOs.cInSpOrder := SPORDER.nrec