Какая версия Forms это?Если он жалуется на LEFT JOIN
, это, вероятно, 6i или что-то.Движок PL / SQL предыдущих (очень старых) версий Forms не совсем соответствовал движку PL / SQL базы данных, поэтому не все, что работало в базе данных, работало и в Forms.
Поэтому я бы предложилпопробовать со старым оператором внешнего соединения Oracle, (+).
Кроме того, если BDATE
тип данных столбца DATE
, вы должны использовать DATE
значения против него, а не строки.'01-Jul-2017'
это строка.DATE '2017-07-01'
- дата (буквальная).
Наконец, говоря, что ваш код отлично работает в SQL * Plus - нет, это не так.GROUP BY
содержит только столбец c.pjno, поэтому туда также следует включить bdate, PROJECT
(или вы должны переписать этот запрос).
Примерно так:
CURSOR ss
IS
SELECT c.pjno
-- , bdate, PROJECT --> removed because of the GROUP BY clause
FROM billcrown c, bank_details d
WHERE c.pjno = d.pjno (+) --> this
and c.bdate > date '2017-07-01' --> use dates, not strings!
GROUP BY c.pjno
HAVING SUM (c.PAMT) <> NVL (SUM (d.AMOUNT), 0);