100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > PL/SQL developer 导入Excel数据到linux安装的Oracle中文乱码问题

PL/SQL developer 导入Excel数据到linux安装的Oracle中文乱码问题

时间:2022-06-27 02:57:54

相关推荐

PL/SQL developer 导入Excel数据到linux安装的Oracle中文乱码问题

解决oracle中文显示乱码有三层地方需要调整或者修改

第一层:操作系统层

locale -a

查看操作系统是否安装了中文字符集

2.设置用户的中文字符集

查看到linux安装了中文字符集,那么oracle用户下面要设置中文字符集

原为LANG=“en_US.UTF-8”

vim /etc/locale.conf # centos7是这个配置文件,有的linux是这个配置文件/etc/sysconfig/i18nLANG="zh_CN.UTF-8"

我的redhat 6.4是在/etc/sysconfig/i18n中设置。

上面的那种方法设置完后,系统所有用户的字符集都是UTF-8。也可以改单个用户的字符集,就是在用户下的环境变量配置文件里面.bashrc里面直接,但本人没有进行验证

export LANG="zh_CN.UTF-8"

然后查看操作系统的字符集,进入Oracle用户查看

env |grep LANGNLS_LANG=AMERICAN_AMERICA.AL32UTF8LANG=zh_CN.UTF-8

可以看到NLS_LANG中是AL32UTF8

第二层:数据库层

在数据库里面查询数据库和实例的字符集

select * from nls_database_parameters;select * from nls_instance_parameters;PARAMETER VALUE------------------------------ --------------------NLS_RDBMS_VERSION 12.2.0.1.0NLS_NCHAR_CONV_EXCP FALSENLS_LENGTH_SEMANTICS BYTENLS_COMP BINARYNLS_DUAL_CURRENCY $NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZRNLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZRNLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AMNLS_TIME_FORMATHH.MI.SSXFF AMNLS_SORT BINARYNLS_DATE_LANGUAGE AMERICANNLS_DATE_FORMATDD-MON-RRNLS_CALENDAR GREGORIANNLS_NUMERIC_CHARACTERS .,NLS_NCHAR_CHARACTERSET AL16UTF16NLS_CHARACTERSETAL32UTF8NLS_ISO_CURRENCYAMERICANLS_CURRENCY $NLS_TERRITORY AMERICANLS_LANGUAGE AMERICAN20 rows selected.

可以看到数据库的字符集是 AL32UTF8;保持服务端和客户端的字符集一致即可

这样之后,那我们打开sqlplus 查询中文,一般就能正常显示了,如果还是乱码,那就新insert一个中文看看,因为修改之前的字符编码跟修改之后的不一致。

若需要进行数据库字符集修改,进行以下操作

1、启动监听并打开数据库

2、查看Oracle数据库字符集

select userenv('language') from dual;

4.修改Oracle数据库字符集

SQL> shutdown immediate;SQL> startup mount;SQL> alter system enable restricted session;SQL> alter system set job_queue_processes=0;SQL> alter system set aq_tm_processes=0;sql> alter database open;SQL> alter database character set AL32UTF8 #你要的编码集,比如ZHS16GBK,AL32UTF8SQL> shutdown immediate;SQL> startup;

这样就将数据库字符集修改过来了

第三层:plsql层(windows层)

重要的PLSQL层,由于我们是通过PLSQL导入Excel数据的,所以首先要保证这部分是中文。

首先修改Windows的环境变量

右击我的电脑,点击“属性”–>“环境变量”,在系统变量中新建键值分别为NLS_LANG:SIMPLIFIED CHINESE_CHINA.AL32UTF8

然后在PLSQL中进行修改

在PLSQL中点击菜单 tools后点击preferences 在弹出的设置窗口中找到 Appearance下的language,选择设置简体中文即可。

经过以上三层的修改,在PLSQL中进行Excel数据导入后,查询正常。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。