Очевидно, что запрос выбора используется в oracle для разделения строки, разделенной запятыми, на строки.
В Postgres есть метод, использующий string_to_array
для преобразования его в массив и функцию unnest
для их преобразования.в строки.
Для вашего случая вы можете перебрать весь массив с помощью FOREACH
Итак, ваша процедура (функция postgres будет выглядеть примерно так:
create or replace function sp_update
.. --other
.. --statements
DECLARE
transactionId numeric;
..--other declarations.
BEGIN
FOREACH transactionId IN ARRAY string_to_array(i_transaction_id,',')::numeric[] as
LOOP
-- UPDATE Statement
END LOOP;
.. --other statements
..
END $$;
Рекомендуемой альтернативой будет передача ARRAY
нескольких идентификаторов вместо отправки через запятую i_transaction_id
. Также попробуйте преобразовать запрос на обновление, чтобы он мог работать как single , а не использовать цикл.