本方法适用于Oracle9i, 10g以及XE. 在10.2.0.1.0下测试无错. 需要注意的是, 使用此方法会破坏数据库中的原有双字节字符. 一种办法是先将数据库导出, 修改完字符集后再导入; 另一种办法就是不管他, 就那样使用. 一般如果是一个测试环境, 像方法二那样就可以了, 但是可能某些表无法读取, 需要注意.
sql> shutdown immediate
sql> startup mount
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 <internal_use> AL32UTF8;
sql> shutdown immediate
sql> startup
这里的INTERNAL_USE可选,譬如用于不能从父集转到子集的场合,但是这样做会产生乱码,或者表中的数据不能读取。
如果数据库中存在CLOB字段,那么就不允许对字符集进行转换,此时可以查看alert<sid>.log文件,把含有CLOB的表trancate.
sql> trancate table [table_name];
转换后的数据库字符集可以通过以下命令察看.
sql> select name, value$ from props$ where name like '%NLS%';
导入导出是我们常用的一个数据迁移及转化工具,因其导出文件具有平台无关性,所以在跨平台迁移中,最为常用。
在导出操作时,非常重要的是客户端的字符集设置,也就是客户端的NLS_LANG设置。
NLS_LANG参数由以下部分组成:
NLS_LANG=<Language>_<Territory>.<Clients Characterset>
NLS_LANG各部分含义如下:
Language
-Oracle消息使用的语言
-日期中月份和日显示
Territory
-货币和数字格式
-地区和计算星期及日期的习惯
Clients Characterset
-控制客户端应用程序使用的字符集
例如
E:\>set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
E:\>sqlplus "/ as sysdba"
或者
E:\>set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
E:\>sqlplus "/ as sysdba"
Windows客户端设置,可以在注册表中更改NLS_LANG,具体键值位于:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\
xx指存在多个ORACLE_HOME时系统编号。
分享到:
相关推荐
#### 二、修改Oracle字符集的必要性 - **数据兼容性**:当数据库需要支持多语言环境时,可能需要更换更广泛的字符集。 - **性能优化**:某些字符集在特定的操作系统环境下具有更好的性能。 - **修复数据问题**:...
本篇将深入探讨Oracle字符集的查看、修改、导入导出以及转换原理。 一、Oracle字符集的查看 在Oracle中,可以通过以下SQL查询来查看当前数据库的字符集设置: ```sql SELECT * FROM NLS_DATABASE_PARAMETERS ...
### Oracle字符集的查看与客户端字符集的修改 #### 一、Oracle字符集的基本概念 在Oracle数据库系统中,字符集(charset)是用于表示文本数据的编码方式。正确设置和管理字符集对于确保数据的一致性和正确性至关重要...
### 修改Oracle数据库字符集的方法 #### 背景与意义 在使用Oracle数据库的过程中,可能会遇到需要更改数据库字符集的情况。这通常发生在原有字符集不能满足新的业务需求时,例如需要支持更多的语言或特殊字符。...
针对这种情况,我们可以按照以下步骤来修改Oracle 11g数据库的字符集,使其更改为ZHS16GBK。 首先,确保你有数据库的系统管理员权限,因为修改字符集需要以SYSDBA身份进行。在Windows环境下,打开命令行窗口(cmd)...
### Oracle字符集修改命令详解 #### 一、引言 在Oracle数据库的管理与维护过程中,字符集的正确设置对于确保数据的正确显示与处理至关重要。由于不同的地区和语言环境对于字符编码的需求各异,因此有时可能需要...
### Oracle字符集的查看与修改详解 #### 一、Oracle字符集概述 Oracle数据库系统支持多种字符集,以便处理各种语言和地区的信息。字符集的选择对于数据的存储和处理至关重要,尤其是在全球化环境中,需要处理多种...
在修改字符集格式之前,需要先关闭数据库,然后使用 `ALTER DATABASE CHARACTER SET ZHS16GBK;` 语句修改字符集格式,最后使用 `STARTUP` 语句打开数据库。这样,数据库中的字符集格式就被修改成了 ZHS16GBK,从而...
总的来说,修改Oracle字符集是一个复杂的过程,涉及到数据库的停机、配置更改以及可能的数据转换。在进行操作之前,应仔细评估需求,并在有经验的数据库管理员指导下进行,以确保操作的成功和数据的安全。
### 修改Oracle字符集详解 #### 一、引言 在处理多语言环境下Oracle数据库时,字符集设置至关重要。不正确的字符集配置会导致数据在存储、检索过程中出现乱码等问题。本文将详细介绍如何解决Oracle数据库字符集...
* 在创建数据库时,可以指定字符集(CHARACTER SET)和国家字符集(NATIONAL CHARACTER SET)。 * 字符集用来存储 CHAR, VARCHAR2, CLOB, LONG 等类型数据,用于标示诸如表名、列名以及 PL/SQL 变量等,用于存储 SQL...
### 修改Oracle字符集 在Oracle数据库管理中,有时我们需要对现有的数据库进行字符集的更改,尤其是在需要支持更多语言或统一字符编码时。本文档提供了一种简洁的方法来更改Oracle数据库的字符集为UTF-8,并提供了...
在Oracle11g环境下,可能会遇到需要更改数据库字符集的情况,例如从AL32UTF8修改为ZHS16GBK。这种变更通常发生在需要支持特定语言环境的应用场景中,尤其是当应用主要面向中文用户时,采用ZHS16GBK字符集可以更好地...