解决redhat enterprise linux 下oracle不能显示中文的方法
一、环境描述:
原始服务器
新加服务器
二、问题描述:
1.110服务器上的数据库为中文字符集,其内的数据表的多项列值为中文。
1.120服务器上的数据库中字符集并不支持ZHS16GBK,所以在将从1.110上导出来的.dmp文件导入到数据库中的时候便会出现以?代替中文字符的现象。
三、解决方法描述:
1、
以root登录,设置linux系统语言为中文,即zh_CN(可在/etc/sysconfig/i18n文件中修改,当然前提是你需要有中文的安装
包);设置完毕之后需要重启(远程登录的话好像只能重启了)或者按ctrl+alt+backspace组合键,使语言设置生效。
之所以设置系统语言为中文,是为了我们用客户端(比如secureCRT工具)登录服务器的时候可以显示中文,以验证oracle的正确。
2、以oracle用户登录编辑家目录下的.bash_profile文件,在其后添加
3、以sysdba来修改数据库的字符集,步骤如下:
SQL> conn /as
sysdba
Connected.
SQL> shutdown
immediate;
Database
closed.
Database
dismounted.
ORACLE instance shut
down.
SQL> startup
mount
ORACLE instance
started.
Total System Global
Area
Fixed
Size
Variable
Size
Database
Buffers
Redo
Buffers
Database
mounted.
SQL> ALTER SESSION SET
SQL_TRACE=TRUE;//语句跟踪
System
altered.
SQL> ALTER SYSTEM ENABLE
RESTRICTED
SESSION;
System
altered.
SQL> ALTER SYSTEM SET
JOB_QUEUE_PROCESSES=0;
System
altered.
SQL> ALTER SYSTEM SET
AQ_TM_PROCESSES=0;
System
altered.
SQL> alter database
open;
Database
altered.
SQL> ALTER DATABASE CHARACTER SET
ZHS16GBK;
ALTER DATABASE CHARACTER SET
ZHS16GBK
*
ERROR at line
1:
ORA-12712: new character set must be
a superset of old character
set
提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:
SQL> ALTER DATABASE character set
INTERNAL_USE
ZHS16GBK;
Database
altered.
查看字符集是否改变:
SQL> select * from
v$nls_parameters;
PARAMETER
----------------------------------------------------------------
---------------
NLS_LANGUAGE
NLS_TERRITORY
NLS_CURRENCY
NLS_ISO_CURRENCY
NLS_NUMERIC_CHARACTERS
NLS_CALENDAR
NLS_DATE_FORMAT
NLS_DATE_LANGUAGE
NLS_CHARACTERSET
NLS_SORT
NLS_TIME_FORMAT
PARAMETER
----------------------------------------------------------------
---------------
NLS_TIMESTAMP_FORMAT
NLS_TIME_TZ_FORMAT
NLS_TIMESTAMP_TZ_FORMAT
NLS_DUAL_CURRENCY
NLS_NCHAR_CHARACTERSET
NLS_COMP
NLS_LENGTH_SEMANTICS
NLS_NCHAR_CONV_EXCP
19 rows
selected.
重启刷新再检查一次:
SQL> shutdown
immediate;
Database
closed.
Database
dismounted.
ORACLE instance shut
down.
SQL>
startup
ORACLE instance
started.
Total System Global
Area
Fixed
Size
Variable
Size
Database
Buffers
Redo
Buffers
Database
mounted.
Database
opened.
SQL> select * from
v$nls_parameters;
PARAMETER
----------------------------------------------------------------
---------------
NLS_LANGUAGE
NLS_TERRITORY
NLS_CURRENCY
NLS_ISO_CURRENCY
NLS_NUMERIC_CHARACTERS
NLS_CALENDAR
NLS_DATE_FORMAT
NLS_DATE_LANGUAGE
NLS_CHARACTERSET
NLS_SORT
NLS_TIME_FORMAT
PARAMETER
----------------------------------------------------------------
---------------
NLS_TIMESTAMP_FORMAT
NLS_TIME_TZ_FORMAT
NLS_TIMESTAMP_TZ_FORMAT
NLS_DUAL_CURRENCY
NLS_NCHAR_CHARACTERSET
NLS_COMP
NLS_LENGTH_SEMANTICS
NLS_NCHAR_CONV_EXCP
19 rows
selected.
4、最后导入.dmp文件
$imp test/test1234
____________________________________________________________________________________导入的提示信息思科路由器交换机
Import file: expdat.dmp >
mydata.dmp
Enter insert buffer size (minimum is
8192) 30720>
Export file created by
EXPORT:V11.02.00 via conventional path
import done in US7ASCII character
set and AL16UTF16 NCHAR character set
import server uses AL32UTF8
character set (possible charset conversion)
List contents of import file only
(yes/no): no >
Ignore create error due to object existence (yes/no): no >
Import grants (yes/no): yes >
Import table data (yes/no): yes >
Import entire export file
(yes/no): no > yes
—————————————————————————————————————————————————
Cisco N7K 的硬件架构 Cisco R&S N4 版本解密视频分享
http://bbs.net527.cn/forum-26-1.html
http://www.net527.cn/a/luyoujiaohuan/index.html
http://www.net527.com
Linux 系统
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21326832/viewspace-1116712/ ,如需转载,请注明出处,否则将追究法律责任。