Есть таблица, в которой пользователями заполняются данные (через веб-приложение).
Есть одно поле в таблице, в которую пользователи могут ввести предопределенный фиксированный текст, например "--------" (8 символов дефиса).
Раз в 5 минут запускается скрипт, который для подобных записей генерирует рандомную строку. Например так:
update ...
set CODE = to_char(dbms_random.value(1,99999999),'FM00000000')
where CODE = '--------'
Но затем мне нужно для этих измененных записей на клиенте сделать еще некоторые задачи, поэтому мне нужно знать, какие строки и как были обновлены.
Скорее всего оптимальным было бы использовать RETURNING INTO.
Но я не нахожу, как на клиент вернуть массив значений.
Другой способ - это выгрузить идентификаторы записей во временную таблицу и работать уже с ней:
insert into tmp(id)
select id from .. where CODE = '--------';
update ... set CODE=to_char(dbms_random.value(1,99999999),'FM00000000')
where ID in (select id from tmp);
...
select * from ... where id in (select id from tmp);
...
delete from tmp;
Он точно будет работать, но хотелось бы обойтись без лишних сущностей.
Не подскажите, как можно использовать первый способ из клиентского скрипта (Perl DBI)?
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.