Вы можете попробовать REGEXP_REPLACE
select regexp_replace(regexp_replace(regexp_replace(
str,'[^,]*','CONSTANT',1,3),'[^,]*','CONSTANT',1,9),'[^,]*','CONSTANT',1,15)
from
(select 'param,value1,str1,param,value2,str3,param,value3' str from dual);
Если у вас есть что-то грязное (например, в кавычках, включая запятые), то оно сломается.Тем не менее, регулярные выражения не являются моей сильной стороной, и некоторые из них должны быть в состоянии сделать лучше.
Я предполагаю, что вы знаете, что наличие СУБД, подобной Oracle, и хранение данных таким странным образом довольно плохоидея.Если вы не собираетесь использовать структуру конвективных таблиц / столбцов, вы можете использовать функции отношения объектов или XML.