Возвращение строк через SELECT но без SELECT..INTO

Есть код, по результатам которого мне нужно достать сумму из одной таблицы в другую. Чтобы её достать я установил условия совпадения номеров записей между таблицами(есть связанные и совпадающие записи)

create or replace function F_TESTSUM
(
nRN NUMBER
) 
RETURN NUMBER
AS
  INRN NUMBER;
  RES PKG_STD.tSTRING;
BEGIN
  INRN:=nRN;
  BEGIN 
     SELECT CLPG.SUMM ---выбираем сумму из таблицы
       INTO RES
       FROM  CLNPOSTSGS CLPG, --таблица откуда берётся сумма
       GRSALARY GRSL, --- таблица, откуда беру вид оплаты суммы
       CLNPSDEP CLNDPG,---таблица откуда беру даты проверки
       CLNPOSTS CLPN --- таблица,по которой начинаю сравнивать номера записей для остальных таблиц
       WHERE 
       CLPG.PRN = INRN
       AND CLPG.PRN=CLPN.RN -- Записи равны между двумя таблицами
       AND CLPN.RN=CLNDPG.POSTRN -- Записи равны между двумя таблицами     
       AND CLPG.GRSALARY = GRSL.RN -- Совпадение кода 'оклад' между двумя таблицами
       AND CLNDPG.DO_ACT_FROM<=SYSDATE AND (CLNDPG.DO_ACT_TO>=SYSDATE OR CLNDPG.DO_ACT_TO IS NULL)
       AND GRSL.CODE = 'оклад'; -- Само условия вида суммы 'оклад'
  END;
  RETURN RES;
END F_TESTSUM;

Но здесь вопрос не в условиях, а в том, что как только начинаю работать, то вылетает исключение:

введите сюда описание изображения

Как я почитал о данной проблеме, исключение вылетает при использовании SELECT INTOс учётом возвращения не одной строки, а нескольких строк.

Я отдельно проверил SELECT и у меня возвращается много строк.

введите сюда описание изображения

Тогда получается SELECT INTO не подходит, как надо мне решить мою проблему?


Ответы (0 шт):