Oracle数据库字符集与Debian上的审计表问题

我已经在Debian linux上安装了Oracle XE,字符集被configuration为AL32UTF8。 有几个客户端应用程序,从Windows连接到一个数据库与不同的语言环境 – 法国等,而不是英语。 这些应用程序放入数据库的所有客户端数据都可以,没有任何转换,法文文本数据表示正确。

但审计表中的文本看起来像“??????” 如果包含任何非英文字符。 我想这是因为审计logging到不同的区域设置的数据库,它不依赖于客户端的全球化/区域设置。

这个全球化问题如何解决? 谢谢!

可能的select是审计数据以法文正确保存,但您的客户端不支持它,所以您的Oracle客户端翻译法语字母为? 为你。

  1. 什么是客户端/环境的NLS_LANG? (例如,从您的环境中)
  2. 为了检查数据是否正确存储在sys.aud $表中,运行:

SELECT username, ascii(username) from DBA_AUDIT_TRAIL; – 可以用WHERE子句将其限制在几个可疑行中

如果所有的??? 字符具有相同的ASCII码,Oracle商店???。 如果每个??? 有不同的ASCII码,Oracle存储法文字母,而你客户端的NLS_LANGconfiguration不支持法文字母。

我希望能帮助你排除故障