Вам необходимо использовать EXECUTE IMMEDIATE
для выполнения обновления:
EXECUTE IMMEDIATE 'UPDATE ' || pTableName ||
' SET SOME_COLUMN = 12345 WHERE SOME_OTHER_COLUMN = ''xyz''';
Однако вам придется заново выполнить логику курсора.Поскольку вы не знаете имя таблицы, вы не знаете, какие поля будут выбраны до открытия курсора, поэтому вам придется жестко кодировать имена полей, которые нужно выбрать, вместо использования *
.Если вам это не нравится, вам придется использовать пакет DBMS_SQL, который обеспечивает большую гибкость - но я предупреждаю, его довольно сложно использовать.
Удачи.