В нашем приложении есть текстовое поле, которое контролируется TinyMCE.Если клиент вставляет текст из Word в текстовое поле, Oracle блокирует, когда мы пытаемся сохранить этот текст в нашей базе данных:
ORA-01461: может связывать значение LONG только для вставки в столбец LONG
Очистка текста, скажем, в Блокноте, не вызовет никаких проблем, поэтому я предполагаю, что проблема заключается во входной строке, содержащей некий двоичный мусор, который Oracle использует в качестве разделителя между значениямикоторые используются в строке вставки sql.
Обновление нашего древнего TinyMCE, вероятно, решит проблему, но я также хочу убедиться, что текст действительно чистый при передаче на нижние уровни.Поэтому я подумал, что могу убедиться, что текст является истинным ASCII, а если нет, очистить все, что не проходит как ASCII, с помощью циклического перебора строк на входе и выполнить следующие действия:
line.replaceAll("[^\\p{ASCII}]", "")
Этожизнеспособное решение, а если нет, то какие подводные камни?