ORACLE 乱码问题解决 ORACLE 你站在那不要动!等我飞奔过去! 雨停了天晴了女人你慢慢扫屋我为你去扫天下了你是我的听说现在结婚很便宜,民政局 9 块钱搞定,我请你吧你个笨蛋啊遇到这种事要站在我后面! 跟我走总有一天你的名字会出现在我家的户口本上。一、修改 oracle 字符集由于 Oracle 默认安装了 SIMPLIFIED 1 字符集,不修改中文会出现乱码现象,输入如下命令: [******@localhost ~]$sqlplus ‘/as sydba ’ SQL>shutdown immediate SQL>Startup restrict SQL>select userenv('language') from dual; SIMPLIFIED SQL>UPDATE $ SET value$='ZHS16GBK' WHERE NAME='NLS_CHARACTERSET'; SQL>shutdown immediate SQL>startup; SQL> select userenv('language') from dual; USERENV('LANGUAGE') --------------------------------------------------- 这样把 WE8ISO8859P1 改变成'ZHS16GBK' 。如果执行了修改字符后, 重启 oracle 数据库仍然是 WE8ISO8859P1 字符集,请重启 linux 系统即可。二、执行第一点中的修改后,数据库报错 ora-06553:pls-553:character set name is not recognized 确认字符集是否修改的不彻底。 SELECT DISTINCT (NLS_CHARSET_NAME(CHARSETID)) CHARACTERSET, DECODE(TYPE#, 1, DECODE(CHARSETFORM, 1, 'VARCHAR2', 2, 'NVARCHAR2', 'UNKOWN'), 9, DECODE(CHARSETFORM, 1, 'VARCHAR', 2, 'NCHAR VARYING', 'UNKOWN'), 96, DECODE(CHARSETFORM, 1, 'CHAR', 2, 'NCHAR', 'UNKOWN'), 112, DECODE(CHARSETFORM, 1, 'CLOB', 2, 'NCLOB', 'UNKOWN')) TYPES_USED_IN FROM $ WHERE CHARSETFORM IN (1, 2) AND TYPE# IN (1, 9, 96, 112); CHARACTERSET TYPES_USED_IN -------------------- ------------- AL16UTF16 NCHAR AL16UTF16 NCLOB AL16UTF16 NVARCHAR2 UTF8 CHAR UTF8 VARCHAR2 WE8ISO8859P1 CHAR
ORACLE乱码问题解决 来自淘豆网m.daumloan.com转载请标明出处.