版本信息
系统环境:win7-64bit
oracle及PLSQL:
[img]http://dl2.iteye.com/upload/attachment/0113/1672/0ca08a7c-ae74-37b7-8603-7328fa1aac98.png[/img]

首先说明一下,我修改orale的字符集主要是为了满足本地数据库和远程数据库字符集的一致性。因为,我这边远程数据库脱离了内网是没办法使用的,
所以自己在本机建立一套同样的数据库,以满足平时的使用。

oracle 10g xe安装成功之后,默认的字符集是AMERICAN_AMERICA.AL32UTF8,并且服务端和客户端是一致的。
而我这边远程数据库服务端字符集却是AMERICAN_AMERICA.ZHS16GBK。

这里区别的地方在于GBK中文占2个字符,UTF8中文则是占3个字符。这样从远程数据库导出来的表结构字段的长度在本机就会不适用了。
比如:
name varchar(30)
在远程服务器上面该字段可以插入15个中文字段,在本地则只能插入10个中文字段。

以下操作的都是本机oracle服务器端和客户端。

1、修改之前首先查看下服务器上的字符集:
select userenv('language') from dual;
2、通过dos窗口连接数据库。
[img]http://dl2.iteye.com/upload/attachment/0113/1674/ca1d8d08-0ae6-36c3-a896-6186d93cd81e.png[/img]

这里需要说明一下,输入密码的时候需要指定连接方式。
格式:密码[空格]as[sysdba]
然后回车即可。
如果只是单纯的输入密码则会报错:
[img]http://dl2.iteye.com/upload/attachment/0113/1676/07f4dc8e-a8ba-3377-b661-996e9d1924cc.png[/img]

输入正确后:
[img]http://dl2.iteye.com/upload/attachment/0113/1678/4e7a512c-ef15-3372-a86b-b9e5868d2acd.png[/img]

具体命令:
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area 805306368 bytes
Fixed Size 1289996 bytes
Variable Size 218104052 bytes
Database Buffers 583008256 bytes
Redo Buffers 2904064 bytes
数据库装载完毕。
SQL> alert system enable restricted session;
SP2-0734: 未知的命令开头 "alert syst..." - 忽略了剩余的行。
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 charset set ZHS16GBK;
alter database charset set ZHS16GBK
*
第 1 行出现错误:
ORA-02231: ALTER DATABASE 选项缺失或无效

SQL> alter database character set ZHS16GBK;
alter database character set ZHS16GBK
*
第 1 行出现错误:
ORA-12712: 新字符集必须为旧字符集的超集

SQL> alter database character set ZHS16GBK;
alter database character set ZHS16GBK
*
第 1 行出现错误:
ORA-12712: 新字符集必须为旧字符集的超集

SQL> alter database character set internal_use ZHS16GBK;

数据库已更改。

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup;
ORACLE 例程已经启动。

Total System Global Area 805306368 bytes
Fixed Size 1289996 bytes
Variable Size 218104052 bytes
Database Buffers 583008256 bytes
Redo Buffers 2904064 bytes
数据库装载完毕。
数据库已经打开。

===================================================================================

至此oracle数据库服务器端算是设置成功了。

这个时候使用PLSQL可能就会出现下面的错误提示了,原因应该就是客户端的字符集编码还没有改过来,所以和服务器端不一致。
更改客户端字符集编码的方式网上都有:更改注册表和环境变量。我采用的是修改环境变量,因为我发现我的注册表中没有关于oracle的注册表。
[img]http://dl2.iteye.com/upload/attachment/0113/1680/350f405c-b3eb-36da-bb4b-982568d49d91.png[/img]

环境变量修改:NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
[img]http://dl2.iteye.com/upload/attachment/0113/1682/017a8c76-4e06-3402-9755-9c71c3bc9d9c.png[/img]

改过之后就正常了。而且数据插入也正常了。但是oracle主页就不正常了。
不过也不管了。反正也用不到。
http://127.0.0.1:8080/apex/f?p=4550:11:1498699066044660::NO:::
[img]http://dl2.iteye.com/upload/attachment/0113/1684/578c2dd7-e11d-384e-acc0-acf1b86e7ec3.png[/img]

oracle10g字符集问题相关推荐

  1. oracle安装选取字符集,oracle10g字符集问题及设置PL/SQL、sqlplus字符集

    使用plsql登录的时候,oracle的tns不显示.需要在本机上增加环境变量: NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 并参考文章: http://bl ...

  2. oracle11g与oracle10g字符集子集与超集的对应关系表

    oracle11g字符集子集与超集的对应关系 Table A-11 Subset-Superset Pairs Subset Superset AR8ADOS710 AR8ADOS710T AR8AD ...

  3. linux   RedHat AS5(x86_64)安装oracle10g

    RedHat AS5(x86_64)安装oracle10g10.2.01 一:安装系统 安装redhat5 LinuxRedHat EnterPrise5默认安装(自定义软件时,全选) 设置redha ...

  4. ArcSDE 9.1 for Oracle10g on Solaris 10

    作者:Flyingis Unix系统安装方法都基本相同,但是这次走常规路线出现问题,先看看环境. 操作系统:Solaris 10(64bit)     数据库:Oracle 10.2.0.3 RAC ...

  5. 解决PLSQL Developer 9连接oracle10g出现乱码

    今天使用plsql9连接oracle10g,查询表单的时候,出现了如下的乱码: 经过一番google后,得到如下的解决方案: 1.数据库字符集获取办法: select * from v$nls_par ...

  6. Oracle10g中OEM相关问题

    最近要用到OEM,发现在Linux下面装的Oracle默认没有打开console,所以需要手动开启一下.找了点资料,也遇到了一些困难,就顺便学习一下相关的知识.把要记录的东西都记下来,也把错误贴出来, ...

  7. RHEL5.8安装Oracle10g

    安装环境及介质: 操作系统:Red Hat Enterprise Linux Server release 5.8 (Tikanga) 数据库:Oracle10.2.0.1 10201_databas ...

  8. Oracle10g在linux下安装详解

    Oracle数据库我想大家都知道我在这里就不多介绍了,它也有很多的版本,我们今天来安装一下oracle10g,根据我的理解oracle数据库大部分都安装在linux下,所以我们就在linux下来安装o ...

  9. sqlldr 导入乱码,Oracle客户端字符集问题

    2019独角兽企业重金招聘Python工程师标准>>> 1,查Oracle数据库创建时候的字符集: Oracle服务器端执行 SQL> select name, value$ ...

最新文章

  1. 单一docker主机网络
  2. 不可错过的 GAN 资源:教程、视频、代码实现、89 篇论文下载
  3. nginx优化之请求直接返回json数据
  4. static_cast、dynamic_cast、reinterpret_cast、const_cast[转]
  5. linux相关命令介绍
  6. Facebook妥协了,React回归
  7. Atom飞行手册翻译: 3.8 编写spec
  8. iOS-UIScrollView拉伸效果
  9. sed原理及p参数的运用的分析
  10. 20150310-删除数组中原有对象
  11. python中正确的赋值语句_在Python中使用赋值表达式时,如何完成赋值语句“x=y:=f(x)”?...
  12. linux远程升级运行程序,在LINUX上对DSP程序远程升级的实现想法
  13. 好用的文本编辑器推荐
  14. 是什么让物联网放慢脚步?
  15. 万字拿下leetcode线性数据结构
  16. Redis Reactive
  17. 【GreenPlum】使用gprecoverseg报gprecoverseg failed
  18. ajax实时获取股票信息,Ajax学习笔记03-模拟动态显示股票信息动态变化的小例子...
  19. 谁发明了世界上第一台电子计算机
  20. [RK3568 Android11] 开发之内置默认中文输入法(谷歌输入法)

热门文章

  1. 新型智能助手|chatgpt|小智ai
  2. 世界防治疟疾日 | 青蒿济世 创新报国
  3. abiword_AbiWord是适用于Windows,Linux和Mac的免费文字处理器
  4. python单词个数_python 统计单词个数
  5. 区块链服务网络BSN第三届开发者大赛圆满落幕,获奖名单公示
  6. 区块链与人工智能的关系
  7. openstack 利用neutron-metering-agent 监控l3层流量
  8. 如何区分“旁路电容”和“去耦电容”
  9. 微信bug二维码崩溃漏洞?poc来了! 生成你们自己的二维码
  10. 批处理禁用无线网服务器,WIN7通过批处理开启/禁用无线网卡的实现过程