Не знаю, возможно ли это, но необходимо создать процедуру, которая при получении запроса просматривает данные в другой процедуре.
Пример:
Ниже приведен еще один пример того, насколько реальна моя структура:
TYPE T_CURSOR IS REF CURSOR;
PROCEDURE PR_ACCOUNT_ACTIVE(CCURSOR OUT T_CURSOR) IS
CURSOR CURSOR_ACCOUNT IS
SELECT ID_ACCOUNT, NAME, 0 AS SUM_BALANCE
FROM ACCOUNT
WHERE STATUS = 'A'
ORDER BY DATE_CREATE DESC;
REG_ACCOUNT CURSOR_ACCOUNT%ROWTYPE;
BEGIN
OPEN CURSOR_ACCOUNT;
LOOP
FETCH CURSOR_ACCOUNT INTO REG_ACCOUNT;
EXIT WHEN CURSOR_ACCOUNT%NOTFOUND;
/***
At this point I need to call the procedure PR_ACCOUNT_BALANCE (below) and
her return and use (field SUM_VAL_MONEY) to update the field SUM_BALANCE
this current cursor (CURSOR_ACCOUNT) and then return to the cursor CCURSOR
***/
END LOOP;
CLOSE CURSOR_ACCOUNT;
END;
END PR_ACCOUNT_ACTIVE;
PROCEDURE PR_ACCOUNT_BALANCE(P_ID_ACCOUNT IS NUMBER, CCURSOR OUT T_CURSOR) IS
BEGIN
OPEN CCURSOR FOR
SELECT ID_ACCOUNT
, SUM(VAL_MONEY) AS SUM_VAL_MONEY
FROM ACCOUNT_CONTRIBUTION
WHERE ID_ACCOUNT = P_ID_ACCOUNT
GROUP BY ID_ACCOUNT
END PR_ACCOUNT_BALANCE;
Мой большой вопрос заключается в том, что в обеих процедурах возврат всегда выполняется курсором, и я не могу это изменить.
Кто-нибудь знает, как решить эту проблему?