我在 Debian linux 上安装了 Oracle XE,并且字符集配置为 AL32UTF8。有几个客户端应用程序从 Windows 连接到具有不同语言环境的数据库 - 法语等,而不是英语。这些应用程序放入数据库的所有客户端数据都可以,没有任何转换,法语文本数据正确表示。
但是审计表中的文本看起来像'??????' 如果包含任何非英文字符。我想这是因为审计记录在不同的语言环境中进入数据库,它不依赖于客户端的全球化/语言环境设置。
如何解决这个全球化问题?谢谢!
我在 Debian linux 上安装了 Oracle XE,并且字符集配置为 AL32UTF8。有几个客户端应用程序从 Windows 连接到具有不同语言环境的数据库 - 法语等,而不是英语。这些应用程序放入数据库的所有客户端数据都可以,没有任何转换,法语文本数据正确表示。
但是审计表中的文本看起来像'??????' 如果包含任何非英文字符。我想这是因为审计记录在不同的语言环境中进入数据库,它不依赖于客户端的全球化/语言环境设置。
如何解决这个全球化问题?谢谢!
可能的选择是审计数据以法语正确保存,但您的客户端不支持它,因此您的 Oracle 客户端将法语字母翻译为???? 为你。
SELECT username, ascii(username) from DBA_AUDIT_TRAIL;
-- 可选地使用 WHERE 子句将其限制为几个可疑行如果所有的???字符具有相同的 ascii 代码,Oracle 存储 ???。如果每个???具有不同的 ascii 代码,Oracle 存储法语字母,而您的客户端 NLS_LANG 配置不支持法语字母。
我希望能帮助你解决它...