从oracle9i 中导出的数据导入到oracle 10g中,经过程序的调用后,发现都是乱码,
开始以为是RHEL5系统字符集的事情,修改了几次后,发觉还是数据库的字符集有问题。
以下是用dba进入后查看拿的实际情况:
select * from V$NLS_PARAMETERS ;
NLS_LANGUAGE SIMPLIFIED CHINESE
NLS_TERRITORY CHINA
NLS_CURRENCY RMB
NLS_ISO_CURRENCY CHINA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
NLS_CHARACTERSET WE8ISO8859P1
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY RMB
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
select userenv('language') from dual;
SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1
select * from sys.props$ WHERE NAME='NLS_CHARACTERSET';
-----------------------
参考了网上的几个解决方法,都没有解决,最后还是使用了这样的方法解决了问题:
UPDATE sys.PROPS$ SET value$='ZHS16GBK' WHERE NAME='NLS_CHARACTERSET';
这样把WE8ISO8859P1改变成'ZHS16GBK' 。
但是原来已经导入的数据都需要重新导入。
*******需要说明的是 上面的这种方法有些问题,尽量不要使用这种方法
下面是正确的修改字符集的方法:
sqlplus "/as sydba"
shutdown immediate
Startup restrict
ALTER DATABASE CHARACTER SET ZHS16GBK;
有时候会遇到如下错误:
ORA-12712: new character set must be a superset of old character set
可以执行如下: 跳过超集的检查
ALTER DATABASE character set INTERNAL_USE zhs16gbk;
然后重启数据库即可,不过最好先做备份哦!
分享到:
相关推荐
4.2.2 语言字符集、常用符号 4.2.3 常量与变量 4.2.4 数据类型 4.2.5 集合API方法 4.3 流程控制 4.3.1条件控制 4.3.2 循环控制 4.3.3 顺序控制 4.4 游标 4.4.1显式游标 4.4.2 隐式...
Bob Bryla是Oracle 9i和10g的认证专家,他在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的工作经验,他也足Dodgeville的Land'End公司的首席Internet数据库设计师和Oracle DBA. ...
oracle的框架主要由物理结构、逻辑结构、内存分配、后台进程、oracle例程、系统改变号 (System Change Number)组成 物理结构 物理结构包含三种数据文件: 1) 控制文件 2) 数据文件 3) 在线重做日志文件 ...
Bob Bryla是Oracle 9i和10g的认证专家,他在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的工作经验,他也足Dodgeville的Land'End公司的首席Internet数据库设计师和Oracle DBA. ...
她从20世纪90年代初就开始使用Oracle,从事 Oracle的教学工作也已经超过10年的时间。她是Oracle ACE,也是OakTable(Oracle社区中著名的“Oracle科学家”的非正式组织)的成员,经常在技术会议上演讲。她的著作还...
charset (\C) 切换到另一个字符集 warnings (\W) 每一个语句之后显示警告 nowarning (\w) 每一个语句之后不显示警告 SQL及其规范 SQL(Structured Query Language结构化查询语言)是一种数据库查询语言和程序设计语言...
charset (\C) 切换到另一个字符集 warnings (\W) 每一个语句之后显示警告 nowarning (\w) 每一个语句之后不显示警告 SQL及其规范 SQL(Structured Query Language结构化查询语言)是一种数据库查询语言和程序设计语言...
改变变量类型 在PHP手册中提到:"PHP不支持(也不需要)直接在声明变量时定义变量类型;变量类型将根据其被应用的情况决定。如果你为变量var赋值为一个字符串,那么它变成了一个字符串。如果你又为它赋了整数值,...
CHR:字符集(字体文件) CHT:ChartViem文件;Harvard Graphics矢量文件 CIF:Adaptec CD 创建器 CD映像文件 CIL:Clip Gallery下载包 CIM:SimCity 2000文件 CIN:OS/2改变控制文件用于跟踪INI文件中的变化 ...