Как упоминалось ранее, имя столбца не является параметром привязки.Динамическое имя столбца в операторе ближе к динамическому sql.Сервер sql не может реально проанализировать и подготовить оператор, если структура оператора является динамической.
Похоже, пример пытается достичь чего-то подобного:
UPDATE table SET a = replace((a), (?), (?))
,b = replace((b), (?), (?))
,c = replace((c), (?), (?))
,d = replace((d), (?), (?))
ЕслиНамерением было не обновить все столбцы, а только некоторые из них, вы могли бы сделать что-то вроде этого:
UPDATE table SET a = NVL2(?, replace((a), (?), (?)), a)
,b = NVL2(?, replace((b), (?), (?)), b)
,c = NVL2(?, replace((c), (?), (?)), c)
,d = NVL2(?, replace((d), (?), (?)), d)
Если входным параметром для столбца является NULL, тогда установите значение столбца равнымто, что это в настоящее время (то есть на самом деле не изменено), в противном случае установите значение столбца в вычисляемый результат.(Синтаксис Oracle)