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

Функция для получения остатка на дату : Супермаг Плюс (Супермаг 2000)

20.04.2024 2:35


24.07.2013 15:14
OlegON
 
Цитата:
Explosion я так попробовал, но оно чего-то ругается что Calc должен быть объявлен
Ошибки принято цитировать с кодом вызова, а не "чего-то"... И версию СМ лучше указывать.
24.07.2013 18:48
svtl
 
что-то не то. если напрямую запускаете,
то exec supermag.Remains.Calc....
25.07.2013 11:55
Explosion
 
Вызвал в функции стандартную процедуру
Пишет ORA-14551 Ошибка выполнения dml внутри запроса
25.07.2013 11:58
OlegON
 
Так покажи, как вызвал, второй раз прошу...
25.07.2013 12:39
svtl
 
ошибка из-за модификации данных внутри функции
проще - Calc запускать до селекта с соответствующими параметрами,
а в нужной функции использовать таблицу ttremains с остатками
25.07.2013 12:47
Explosion
 
В общем весь текст

create or replace function get_goods_ondate2(art in string,
mh in number,
dat in date) return number is
Res number(14, 3);
begin
Supermag.Remains.Calc(to_date(dat, 'dd.mm.yyyy'), false, 23, 1, false);
Select ost_dat
into Res
from (Select ttr.quantity as ost_dat,
ttr.article,
ttr.remdate,
ttr.storeloc
from supermag.ttremains ttr
where ttr.remdate = to_date(dat, 'dd.mm.yyyy')
and ttr.article = art
and ttr.storeloc = mh);
return(Res);
end get_goods_ondate2;
25.07.2013 12:55
Starter
 
А где функция планируется использоваться ? Не в Бизнес-анализе, случаем ?
25.07.2013 13:01
Explosion
 
нет. для отчета.
25.07.2013 13:03
OlegON
 
Цитата:
OlegON Так покажи, как вызвал, второй раз прошу...
третий раз прошу...
25.07.2013 13:12
Explosion
 
просто в запросе пишу
Select get_goods_ondate2(c.article,loc.id,'&Параметр_даты')
итд
Часовой пояс GMT +3, время: 02:35.

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