Проблема с набором символов Oracle Database в таблицах аудита в Debian

Проблема с набором символов Oracle Database в таблицах аудита в Debian

У меня установлен Oracle XE на Debian linux, а набор символов настроен на AL32UTF8. Есть несколько клиентских приложений, которые подключаются к базе данных из Windows с разными локалями - французской и т. д., а не английской. Это нормально со всеми клиентскими данными, которые эти приложения помещают в базу данных, ничего не преобразуется, и текстовые данные на французском языке отображаются правильно.

Но тексты в таблицах аудита выглядят как '??????', если содержат любой неанглийский символ. Я предполагаю, что это происходит потому, что записи аудита попадают в базу данных в другой локали, и это не зависит от настроек глобализации/локали клиента.

Как можно решить эту проблему глобализации? Спасибо!

решение1

Вероятный вариант — данные аудита сохранены правильно на французском языке, но ВАШ клиент его не поддерживает, поэтому ваш клиент Oracle переводит для вас французские буквы на ????.

  1. Каков NLS_LANG вашего клиента/среды? (например, из вашей среды)
  2. Чтобы проверить, правильно ли сохранены данные в таблице sys.aud$, выполните:

SELECT username, ascii(username) from DBA_AUDIT_TRAIL; --опционально с предложением WHERE, чтобы ограничить его несколькими подозрительными строками

Если все символы ??? имеют одинаковый код ascii, Oracle сохраняет ???. Если каждый ??? имеет разный код ascii, Oracle сохраняет французские буквы, а конфигурация вашего клиента NLS_LANG не поддерживает французские буквы.

Надеюсь, это поможет вам устранить неполадки...

Связанный контент