plsql 中文乱码
2016-03-03 17:18
405 查看
plsql 中文乱码,
中文还是用ZHS16GBK
select * from nls_database_parameters where parameter like 'NLS%CHARACTERSET';
PARAMETER VALUE
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET AL16UTF16
SIMPLIFIED CHINESE_CHINA.AL32UTF8
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
在使用plsql的机器上,打开注册表,
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home2.
找到 NLS_LANG 键,他的值原来是:American 。。。。
修改为:SIMPLIFIED CHINESE_CHINA.AL32UTF8
用sql查看oracle的字符集
select userenv('language') from dual;
把oracle的字符集从AL32UTF8改为ZHS16GBK
登录SQL Plus
conn /as sysdba
[b]shutdown immediate;[/b]
在SQL Puls中的命令如下:
SQL> conn /as sysdba
已连接。
SQL> shutdown immediate;
数据库已关闭。
已经卸载数据库。
SQL> startup mount
ORACLE例程已经启动。
……
………………
…………………………
数据库装载完毕。
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
ZHS16GBK;
第1行出现错误:
ORA-12712: new character set must be a superset of old character
set
提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE
ZHS16GBK;
数据库已更改。
--我们看到这个过程和之前ALTER
DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验.
SQL> select * from v$nls_parameters;
RARAMETER
VALUE
NAS_LANGUAGE
SIMPLIFIED CHINESE
NLS_TERRITORY
CHINA
……
SQL> shutdown immediate;
SQL> startup
plsql
设置完注册表后,接下来设置我们的环境变量,计算机(右键) --->属性--->高级系统设置--->高级--->环境变量--->新建,个人建议新建用户变量,变量名输入:“NLS_LANG”,变量值输入:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”。点击确定即可,到此我们就设置完了
中文还是用ZHS16GBK
select * from nls_database_parameters where parameter like 'NLS%CHARACTERSET';
PARAMETER VALUE
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET AL16UTF16
SIMPLIFIED CHINESE_CHINA.AL32UTF8
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
在使用plsql的机器上,打开注册表,
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home2.
找到 NLS_LANG 键,他的值原来是:American 。。。。
修改为:SIMPLIFIED CHINESE_CHINA.AL32UTF8
用sql查看oracle的字符集
select userenv('language') from dual;
把oracle的字符集从AL32UTF8改为ZHS16GBK
登录SQL Plus
conn /as sysdba
[b]shutdown immediate;[/b]
在SQL Puls中的命令如下:
SQL> conn /as sysdba
已连接。
SQL> shutdown immediate;
数据库已关闭。
已经卸载数据库。
SQL> startup mount
ORACLE例程已经启动。
……
………………
…………………………
数据库装载完毕。
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
ZHS16GBK;
第1行出现错误:
ORA-12712: new character set must be a superset of old character
set
提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE
ZHS16GBK;
数据库已更改。
--我们看到这个过程和之前ALTER
DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验.
SQL> select * from v$nls_parameters;
RARAMETER
VALUE
NAS_LANGUAGE
SIMPLIFIED CHINESE
NLS_TERRITORY
CHINA
……
SQL> shutdown immediate;
SQL> startup
plsql
设置完注册表后,接下来设置我们的环境变量,计算机(右键) --->属性--->高级系统设置--->高级--->环境变量--->新建,个人建议新建用户变量,变量名输入:“NLS_LANG”,变量值输入:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”。点击确定即可,到此我们就设置完了
相关文章推荐
- mysql误删除数据恢复处理
- mysql合并相同字段,不同的拼接在起后
- PyMySql模块增删查改基本操作
- java redis使用之利用jedis实现redis消息队列
- Oracle job procedure 存储过程定时任务
- POPTEST老李分享操作redis
- MongoDB中的主从同步配置和mongod相关启动命令讲解
- POPTEST老李分享一键停止Oracle相关服务
- SQL基础知识
- mysql5.6主从复制参数详解
- Oracle EBS R12 WIP Component Issue&Return Process
- 三种数据库的分页
- mysql快捷键
- SQL触发器调用.NET的类方法
- [转]十步完全理解SQL
- SQL Server中获取指定时间段内的所有月份
- simple-spring-memcached 注解配置
- C#中读取SQLServer数据库方法类库(感觉有点意思就载下来了 )
- mysql审计插件--MariaDB Audit Plugin
- 基于sysbench-0.5的MySQL自动化压测及分析出图