Рисую новую печатную форму для расходной накладной ТОРГ-2. Нужно определить номер и дату последней накладной от поставщика.
Создал вычисляемый столбец:
Код:
function CF_Date_NaclFormula return Char is
Date_Nacl char(70);
begin
Select id ||' от ' ||to_char(createdat,'DD')||' '||decode(to_char(createdat,'MM'),1,'января',2,'февраля',3,'марта',4,'апреля',5,'мая',6,
'июня',7,'июля',8,'августа',9,'сентября',10,'октября',11,'ноября',12,'декабря')||' '||to_char(createdat,'YYYY')|| ' года' into Date_Nacl
FROM (SELECT A2.CREATEDAT,
A2.ID,
A2.LOCATIONTO,
ROW_NUMBER() OVER(PARTITION BY A2.CLIENTINDEX ORDER BY A2.CREATEDAT DESC) RN
FROM SUPERMAG.SMDOCUMENTS A2
WHERE A2.OPCODE=0
AND A2.USEROP=80
AND A2.DOCSTATE = 3
AND A2.CREATEDAT > TO_DATE('01.01.2006')
AND A2.CREATEDAT<=(select createdat from smdocuments where id=:p_id and doctype=:p_doctype)
AND A2.LOCATIONTO = (select locationfrom from smdocuments where id=:p_id and doctype=:p_doctype)
AND A2.DOCTYPE = 'WI'
AND A2.CLIENTINDEX = (select CLIENTINDEX from smdocuments where id=:p_id and doctype=:p_doctype))
WHERE RN = 1;
return Date_Nacl;
end;
Но при компиляции формулы выдается ошибка на строке:
Код:
ROW_NUMBER() OVER(PARTITION BY A2.CLIENTINDEX ORDER BY A2.CREATEDAT DESC) RN
"Встретился сивол "(" в то время как ожидалось одно из следующих, from"
Хотя если запустить этот же запрос в sqlplus или toad, то он отрабатывает без ошибок.
Версия oracle 8.1.6
Может что подскажите?