数据库字符集相关说明及设置


字符集查看及修改


(1)nls_database_parameters来源于props$,是表示数据库的字符集。在创建数据库的时候设定的,一般不会改变.
nls_database_parameters取值与props$,即我们创建数据库时存储在数据库中的信息,这与环境变量和参数文件等是统统没有关系的

(2)v$nls_parameters 显示当前会话值 ,他受客户端nls 的控制。

实际数据库是使用v$nls_parameters 中的设置


所以2个视图的查询结果是可能不一样的。


其他几个相关的视图:

(1)nls_instance_parameters 其来源于v$parameter,表示客户端的字符集的设置,由参数文件决定,不受环境变量或者是注册表影响。

(2)nls_session_parameters 来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。
nls_session_parameters取值与V$NLS_PARAMETERS,它的查询结果默认会从nls_instance_parameters继承,但是如果,我们在环境变量或者通过ALTER SESSION 改变了nls的相关参数,则会覆盖默认值。


数据字典或v$视图查看。

NLS_DATABASE_PARAMETERS:显示数据库当前NLS参数取值,包括数据库字符集取值,来源于props$,表示数据库的字符集。

NLS_SESSION_PARAMETERS: 显示由NLS_LANG 设置的参数,或经过alter session 改变后的参数值(不包括由NLS_LANG 设置的客户端字符集),
来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与 nls_instance_parameters一致。

NLS_INSTANCE_PARAMETE: 显示由参数文件init.ora 定义的参数,其来源于v$parameter,表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表

V$NLS_PARAMETERS:显示数据库当前NLS参数取值

NLS作用优先级别:Sql function > alter session > 环境变量或注册表 > 参数文件 > 数据库默认参数




相关文档
最新文档