Я пытаюсь выбрать некоторые строки из таблицы в ORACLE и в то же время обновить состояние выбранных строк. Я нашел способ сделать это с помощью хранимой функции и курсоров, но мне не удается вернуть строки после использования курсора для обновления. Это мой код:
CREATE OR REPLACE FUNCTION FUNCTION_NAME
RETURN SYS_REFCURSOR
IS
l_return SYS_REFCURSOR;
CURSOR c_operations IS
SELECT * FROM TABLE1
WHERE STATUS != 'OK'
FOR UPDATE OF TABLE1.STATUS;
BEGIN
FOR r_operation IN c_operations
LOOP
UPDATE
TABLE1
SET
TABLE1.STATUS = 'OK'
WHERE
TABLE1.ID_TABLE1 = r_operation.ID_TABLE1;
END LOOP;
COMMIT;
-- Missing conversion from cursor to sys_refcursor
RETURN l_return;
END;
Обновление работает, но я все еще не знаю, как вернуть обновленные строки, которые находятся в курсоре (c_operations).
Спасибо.