`
clover灬
  • 浏览: 9300 次
  • 性别: Icon_minigender_1
  • 来自: 未来
社区版块
存档分类
最新评论

oracle10g字符集问题

阅读更多
版本信息
系统环境:win7-64bit
oracle及PLSQL:


首先说明一下,我修改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窗口连接数据库。


这里需要说明一下,输入密码的时候需要指定连接方式。
格式:密码[空格]as[sysdba]
然后回车即可。
如果只是单纯的输入密码则会报错:



输入正确后:


具体命令:
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的注册表。



环境变量修改:NLS_LANG=AMERICAN_AMERICA.ZHS16GBK



改过之后就正常了。而且数据插入也正常了。但是oracle主页就不正常了。
不过也不管了。反正也用不到。
http://127.0.0.1:8080/apex/f?p=4550:11:1498699066044660::NO:::

  • 大小: 3.2 KB
  • 大小: 4.1 KB
  • 大小: 1.8 KB
  • 大小: 2.7 KB
  • 大小: 69.9 KB
  • 大小: 4.7 KB
  • 大小: 14.3 KB
分享到:
评论

相关推荐

    Oracle10g字符集设置,解决中文乱码

    Oracle 10g字符集设置是数据库管理中的一个重要环节,特别是在处理中文数据时,正确的字符集配置至关重要。在Windows环境下,Oracle 10g客户端的安装可能会遇到中文乱码问题,这通常是因为新安装的客户端与旧版本...

    Oracle11g 字符集 AL32UTF8 修改为ZHS16GBK

    ### Oracle11g 字符集 AL32UTF8 修改为 ZHS16GBK 的步骤与注意事项 #### 一、背景介绍 在Oracle11g环境下,可能会遇到需要更改数据库字符集的情况,例如从AL32UTF8修改为ZHS16GBK。这种变更通常发生在需要支持特定...

    ORACLE11g更改字符集

    ### 一、更改Oracle 11g字符集的意义 在Oracle 11g数据库中,字符集用于定义如何存储和处理文本数据。不同的字符集支持不同的语言和符号。例如,ZHS16GBK字符集主要支持中文简体字符。更改字符集通常发生在以下情况...

    修改ORACLE11G字符集

    ### 修改Oracle 11g字符集 在Oracle数据库管理中,字符集的设置至关重要,它直接影响到数据的存储和检索。对于已经安装并运行的Oracle 11g数据库,如果发现默认字符集不符合需求(例如默认为US7ASCII),则需要进行...

    oracle修改字符集

    针对这种情况,我们可以按照以下步骤来修改Oracle 11g数据库的字符集,使其更改为ZHS16GBK。 首先,确保你有数据库的系统管理员权限,因为修改字符集需要以SYSDBA身份进行。在Windows环境下,打开命令行窗口(cmd)...

    Oracle 字符集详解

    Oracle字符集是数据库管理系统Oracle中的一个重要概念,它决定了数据库如何存储和处理文本数据。字符集不仅影响着数据的准确性和一致性,还与全球化应用、数据迁移和数据交换密切相关。本篇将深入探讨Oracle字符集的...

    oracle11g更改字符集

    oracle11g导入报错,很多情况下是字符集不同导致失败,附件为oracle11g更改字符集操作说明,多次实测有效。

    oracle10g字符集的查看与修改.doc

    Oracle 10g 字符集是数据库管理系统Oracle中用于表示和处理文本数据的关键组件。字符集定义了如何将字符映射到二进制值,从而影响数据存储、检索和显示的方式。Oracle支持多种字符集,以适应全球各地的语言和文化...

    oracle11g字符集修改

    oracle11g字符集的修改,本人亲自用过,按照文档内容一步一步操作准没错,不要忘了先将数据备份或导出pdm哦!!!O(∩_∩)O哈哈~

    Oracle切换客户端字符集

    Oracle数据库系统支持多种字符集,以适应全球化的数据存储需求。字符集定义了数据库如何存储和显示字符,对于处理多语言环境尤为重要。在某些情况下,用户可能需要在客户端侧更改字符集,以便正确地显示或处理特定...

    Oracle10G_RAC环境下字符集

    在Oracle 10g RAC(Real Application Clusters)环境下,由于涉及多节点的集群配置,字符集的修改需要更加谨慎和精确的操作。本篇文章将详细阐述在Oracle 10g RAC环境下如何修改字符集,同时,这些步骤也可以为修改...

    oracle 10g xe 版本更改数据库字符集

    ### Oracle 10g XE 版本更改数据库字符集 在进行Oracle 10g XE数据库的字符集修改时,需要理解几个关键的概念和技术点。本文将详细介绍如何更改Oracle 10g XE数据库的字符集,并提供具体的操作步骤。 #### 一、...

    修改Oracle数据库字符集的方法

    本文将详细介绍如何在Oracle 10g中通过命令行方式修改数据库字符集。 #### 前提条件 在进行字符集修改之前,请确保满足以下前提条件: 1. **有足够的权限**:必须具备sysdba权限才能执行这些操作。 2. **备份...

    oracleXE字符集改成GBK

    Oracle 10g Express Edition是Oracle专门为小型用户提供的免费版本。Oracle XE十分小巧,安装简单,可供第三方软件开发商部署较小的应用。  不过Oracle XE目前的beta2缺省安装的字符集是WE8MSWIN1252,不是中文...

    oracle 字符集的用法

    在Oracle 10g中,字符集的更改可能涉及到数据库的迁移、升级或配置优化。 在Oracle中,如果你遇到“ORA-01090: shutdown in progress - connection is not permitted”和“ORA-01081: cannot start already-running...

    Oracle 10g 中文乱码问题

    ### Oracle 10g 中文乱码问题解析 #### 原因分析 在使用Oracle 10g数据库过程中,可能会遇到中文字符显示为乱码的情况。这种问题往往出现在数据库安装后,在尝试插入中文数据并查询时,数据显示为“?????”等形式...

    修改oracle10字符集步骤

    ### 修改Oracle 10g字符集的必要性 随着业务需求的变化,或者当数据库需要在全球范围内使用时,可能需要更改原有的字符集。例如,从仅支持英文的`US7ASCII`改为支持中文的`ZHS16GBK`或`AL32UTF8`。这不仅能确保...

    最新OCI(百分百兼容Oracle所有版本字符集).zip

    "最新OCI(百分百兼容Oracle所有版本字符集)" 提供的是 OCI 库的更新版本,确保与Oracle的所有字符集兼容,解决了Navicat等第三方工具在连接Oracle时可能出现的字符集不匹配问题。 Navicat 是一款流行的数据库管理...

Global site tag (gtag.js) - Google Analytics