LINUX-ORACLE安装,应该选择哪些字符集

LINUX-ORACLE安装,应该选择哪些字符集,第1张

ORACLE用这个就行:

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

说明:

NLS_LANG一般由三个部分组成, 语言、地域和字符集

真正影响数据库字符集的其实是第三部分。

ZHS16GBK表示采用GBK编码格式、16位(两个字节)简体中文字符集

LINUX也可以用这个字符集。

select userenv('language') from dual

先确认Oracle的字符集,sqlplus登录Oracle后执行语句:

select userenv('language') from dual

返回值例如:AMERICAN_AMERICA.ZHS16GBK

export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"

修改Linux的NLS_LANG环境变量,修改Oracle指定的Linux用户下面“.base_profile”文件,加入如下:

export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"

用Linux命令“source ~/.base_profile”或者重启,使环境变量设置生效;查看环境变量的Linux命令为“echo $NLS_LANG”。

一般来说,oracle数据导出spool方式,中文出现乱码,这情况是因为数据库服务器和客户端字符集不匹配,执行sqlplus的机器就是客户端,服务器和客户端也可能是一台机器,执行sqlplus之前要先设置客户端的字符集,在linux上:export NLS_LANG=.......

在windows上set NLS_LANG查询数据库字符集:select property_value from database_properties where property_name like 'NLS_CHAR%'

1、比如查询结果是:ZHS16GBK

那你在sqlplus之前要设置:export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

然后再登录sqlplus用spool生成数据

检查下你导出时候的环境变量,导入时的环境变量

2、比如导出时NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

导入时NLS_LANG没有设置,或者设置为其他字符集,则导入的库内汉字就有可能变成乱码。

解决方法,连接数据库的时候设置正确字符集即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8402763.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存