У меня есть требование проверить все текстовые поля в схеме базы данных на наличие любых недопустимых символов XML и заменить их предопределенным набором допустимых значений.Это должно стать частью правила преобразования данных, которое может быть вызвано из других функций.Так что эту функцию можно было бы вызвать более миллиарда раз в нашем наборе данных, поэтому мне нужно, чтобы она работала действительно эффективно.
т.е. & = AND, '= APOS
Пример того, что нужнодолжно быть достигнуто с помощью функции:
Update sometable set somefield = functioncall('f&re'd');
должно привести к тому, что поле somefield имеет значение 'fANDreAPOSd'
Это должно выполняться универсальным типомФункция PL / SQL, которая принимает ввод текстового поля, выполняет итерацию по этому полю и заменяет все недопустимые значения.
Я посмотрел на http://asktom.oracle.com/pls/asktom/f?p=100:11:0::NO::P11_QUESTION_ID:2612348048
http://decipherinfosys.wordpress.com/2007/11/27/removing-un-wanted-text-from-strings-in-oracle/
Для некоторых идей, но у меня есть опасения по поводу эффективности и гибкости этих решений.
Способ, которым клиент хочет обработать решение, состоит в том, чтобы настроить таблицу, содержащую недопустимый символ, и это предпочтительнеезамена.Затем функция использует значения, выбранные из этой таблицы, для предварительной замены.