我想了解一些有关 oracle(通过 sql/plus)如何确定用于评估 sql 脚本的字符集的详细信息。
我的数据库配置如下:
select VALUE from nls_database_parameters where parameter='NLS_CHARACTERSET';
VALUE
------
WE8ISO8859P15
问题是我在这里读到 http://www.orafaq.com/wiki/NLS session 参数可以优先于数据库参数。
这是否意味着数据库编码被执行脚本的用户的 NLS_LANG 环境变量中定义的编码覆盖?
显然,不可能通过alter session 语句修改脚本中的编码。
我问这个问题是因为我已经遇到了一个由印度分包商执行的生产脚本的字符损坏问题。我实际上不知道是因为他对我的文件做错了什么(比如在 sql gui 客户端中复制/粘贴)还是因为他的环境。
总结我的实际问题,如果一切正常
提前感谢您的回答。
最佳答案
是的,你是对的。 Oracle 客户端总是在数据库字符集和客户端机器的字符集之间进行转换,这由 NLS_LANG 环境变量或系统设置决定。
请注意,UTF8 仅支持 Unicode 3.1 及更早版本。改用 AL32UTF8 以获得完整的 Unicode 支持。
关于sql - oracle(通过 sql/plus)如何确定用于评估 sql 脚本的字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20956703/