Заменить недопустимый символ в оракуле (отредактировав файл dmp) - PullRequest
3 голосов
/ 31 января 2012

У нас есть портал, написанный на php / mysql, и корпоративное приложение на основе Java EE и Oracle.Недавно мы обнаружили, что определенный символ Unicode (точнее 0643) недопустим (из-за неправильного ввода данных конечными пользователями) в текстовых столбцах и должен быть заменен на другой символ (06A9).

В MySQL Iпросто изменил файл экспорта, используя инструмент поиска и замены текстового редактора.Но в оракуле файл dmp является двоичным файлом, и я понятия не имею, как редактировать файл dmp.

Как изменить недопустимый символ?

Есть ли альтернатива итерациичерез все текстовые столбцы во всех таблицах?(Я сохранил это в крайнем случае!)

1 Ответ

2 голосов
/ 31 января 2012

Редактирование файла дампа Oracle возможно, но не практично;даже если бы вы могли войти и изменить что-то, вы рискуете испортить это, и я сомневаюсь, что поддержка Oracle будет впечатлена.(См., Например, этот вопрос AskTom .)

Если вы используете насос данных и знаете, в каких столбцах находятся данные, может быть в состояниииспользовать параметр REMAP_DATA , чтобы изменить его на лету, или параметр QUERY, чтобы пропустить данные, но не похоже, что вы находитесь в такой ситуации.Вы можете потенциально добавить временные ограничения в соответствующие столбцы, чтобы заблокировать значение, поэтому импорт будет отклонять (и регистрировать) затронутые строки, но это болезненно и беспорядочно.

Если вам нужно проверить все столбцыво всех таблицах эта ссылка может быть полезна.

...