Если я вас правильно понимаю. Вы хотите преобразовать таблицу с не отличимыми идентификаторами и связанными значениями в таблицу с разными идентификаторами и столбцом, содержащим значения, разделенные запятыми.
Если я вас правильно понимаю, то я в основном напишу новую таблицу. И сделайте процедуру, которая перебирает первую таблицу:
BEGIN
FOR cursor IN cursor_through_original_table
LOOP
BEGIN
SELECT value
INTO temp_variable
FROM new_table
WHERE id = cursor.id;
EXCEPTION
WHEN no_data_found THEN
temp_variable := NULL;
END;
IF temp_variable IS NOT NULL THEN
UPDATE new_table
SET value = temp_variable || ', ' || cursor.value
WHERE id = cursor.id;
ELSE
INSERT INTO new_table (id, value)
VALUES (cursor.id, cursor.value);
END IF;
END LOOP;
END;
Это не код для копирования-вставки, он написан без тестирования или даже перечитывается, так что он обязательно будет иметь ошибки, и еготакже отсутствуют декларации. Но это поможет мне понять, как это сделать.
Я надеюсь, что это соответствует вашим потребностям, и вы получите то, над чем работаете.