oracle 数据库对字符的处理及表现形式分为三个层面,优先级先后分别是数据库初始化参数字符集、os操作系统环境变量级、session级
先说什么是字符集?字符集就是按照一定的字符编码方案,对一组特定的符号,分别赋予不同数值编码的集合。
格式为<语言><比特位数><编码 >比如: ZHS16GBK表示采用GBK编码格式、16位(两个字节)简体中文字符集
数据库初始化参数字符集,在建数据库前指定的字符集,建立后通常不能修改,如果修改可以用命令alter database set character set xxx; 不过这样修改有一定的危险,有可能会出现乱码超成数据的丢失,而且修改后的字符集一定是修改前的超集。如果未指定建库时会依赖os的设置。session级作用域只是影响那个连接
nls_characterset设置服务器的字符集
nls_lang客户端字符集定义了客户端字符数据的编码方式,任何发自或发往客户端的字符数据均使用客户端定义的字符集编码,客户端可以看作是能与数据库直接连接的各种应用
NLS_NCHAR_CHARACTERS 全球化的字符集默认为 AL16UTF16
nls_language是数据库内的默认语言 ,可能不易理解,下面是官方解释
NLS_LANGUAGE specifies the default language of the database. This language is used for messages, day and month names, symbols for AD, BC, a.m., and p.m., and the default sorting mechanism. This parameter also determines the default values of the parameters NLS_DATE_LANGUAGE and NLS_SORT.
查询相关的几个表
nls_database_parameters;
nls_session_parameters;
先说什么是字符集?字符集就是按照一定的字符编码方案,对一组特定的符号,分别赋予不同数值编码的集合。
格式为<语言><比特位数><编码 >比如: ZHS16GBK表示采用GBK编码格式、16位(两个字节)简体中文字符集
数据库初始化参数字符集,在建数据库前指定的字符集,建立后通常不能修改,如果修改可以用命令alter database set character set xxx; 不过这样修改有一定的危险,有可能会出现乱码超成数据的丢失,而且修改后的字符集一定是修改前的超集。如果未指定建库时会依赖os的设置。session级作用域只是影响那个连接
nls_characterset设置服务器的字符集
nls_lang客户端字符集定义了客户端字符数据的编码方式,任何发自或发往客户端的字符数据均使用客户端定义的字符集编码,客户端可以看作是能与数据库直接连接的各种应用
NLS_NCHAR_CHARACTERS 全球化的字符集默认为 AL16UTF16
nls_language是数据库内的默认语言 ,可能不易理解,下面是官方解释
NLS_LANGUAGE specifies the default language of the database. This language is used for messages, day and month names, symbols for AD, BC, a.m., and p.m., and the default sorting mechanism. This parameter also determines the default values of the parameters NLS_DATE_LANGUAGE and NLS_SORT.
查询相关的几个表
nls_database_parameters;
nls_session_parameters;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




