DECLARE
v_sort_order NUMBER := 1;
BEGIN
FOR i IN
( SELECT category_id FROM captions ORDER BY <column names>
);
LOOP
UPDATE captions
SET sort_order = v_sort_order
WHERE category_id = i.category_id;
v_sort_order := v_sort_order +1;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20501,'error'||SQLCODE||sqlerrm);
END;
Этот блок PL-SQL должен сработать.
FOR i IN (ВЫБРАТЬ category_id ИЗ ПОДПИСЕЙ ORDER BY);это выберет все ваши столбцы таблицы подписей.
В порядке по предложению замените фактическими именами столбцов, с которыми вы хотите отсортировать.Оператор update обновит все выбранные строки.