第一次装oracle11g数据库乱字符问题的解决
由于工作原因,常常用plsql进公司数据库操作取数,但从来没有自己装过oracle服务器端,也没有装过数据库。对于学习SQL来说,进真实数据库操作,显然不合适,因此前几天在自己笔记本里装了oracle11g,同时装数据库。但在做第一个过程并执行时,中文是乱码。用select userenv('language') from dual,查询数据库字符集不是我们公司用的SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1,改了注册表不行,改了环境变量也不行。后来到网上查询,步骤如下:
1、用SQLplus登录数据库;
2、以sysdba的身份登录上去 ,conn / as sysdba ,下一部输入密码,****
3.以mount模式启动数据库
SQL>startup mount
4.设置session
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
5.启动数据库
SQL>alter database open;
6.修改字符集
SQL>ALTER DATABASE character set INTERNAL_USE WE8ISO8859P1; (直接用下一句,报错,改不起,先用这个强制执行)
SQL>ALTER DATABASE character set WE8ISO8859P1; (用上一句,修改后查询结果是改过来了,但还是乱字符,必须执行这个,才正常)
7.关闭,重新启动
SQL>shutdown immediate;
SQL>startup
--查询数据信息
select * from v$nls_parameters; 查询出来主要是改NLS_CHARACTERSET,这一项。

浙公网安备 33010602011771号