У меня есть функция, которая возвращает Sys_Refcursor. Это выглядит так:
Open l_cursor For
Select b.balance + b.arrears arrears_bucket
,b.levy + b.penalty levy_bucket
,b.supplementary_levy supp_bucket
,b.other_balance + b.other_penalty other_bucket
,b.arrears_balance + b.arrears_penalty + b.levy_balance + b.levy_penalty calculated_balance
From balances b
Where b.id = p_id;
Return l_cursor;
У меня есть другая функция, в которой я хочу вызвать вышеуказанную функцию, и через нее l oop. Это выглядит так:
Cursor l_cursor Is
Select balance_sel(p_id) From dual;
l_result1 Number;
l_result2 Number;
l_result3 Number;
l_result4 Number;
l_result5 Number;
Begin
Loop
Fetch l_cursor into l_result1, l_result2, l_result3, l_result4, l_result5;
EXIT WHEN l_cursor%notfound;
End Loop;
Но я продолжаю получать сообщение об ошибке:
Error: PLS-00386: type mismatch found at 'L_RESULT1' between FETCH cursor and INTO variables
Line: 316
Text: Fetch l_cursor into l_result1, l_result2, l_result3, l_result4, l_result5;
Я собираю числа в числа, так что же это за несоответствие? Как мне решить это? Кажется, это должно быть просто, но я в растерянности.
Спасибо.