`
huangshanghua
  • 浏览: 56967 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

修改oracle数据库的字符编码

阅读更多
最近安装个Oracle 10g数据库,dbca建库的时候没选字符集或者选错的情况,导入数据后,中文全部是乱码或者不能正常导入新的库,出现表字段长度不够的错误,解决办法如下:
SQL> connect / as sysdba;              ---dba用户连接数据库

SQL> select name,value$ from props$ where name like '%NLS%';---语句查询当前数据库服务器字符集

NAME
------------------------------------------------------------
VALUE$
--------------------------------------------------------------------------------
NLS_LANGUAGE
AMERICAN

NLS_TERRITORY
AMERICA

NLS_CURRENCY
$


NAME
------------------------------------------------------------
VALUE$
--------------------------------------------------------------------------------
NLS_ISO_CURRENCY
AMERICA

NLS_NUMERIC_CHARACTERS
.,

NLS_CHARACTERSET           ----找到查出来的结果中的该项参数
WE8ISO8859P1



下面是修改过程:

SQL> shutdown immediate;     ---停止数据库
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup mount           ---启动数据库到mount状态
ORACLE instance started.

Total System Global Area 235999352 bytes
Fixed Size 450680 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.

---下面是修改过程,按步骤修改
SQL> alter session set sql_trace=true;

Session altered.

SQL> alter system enable restricted session;

System altered.

SQL> alter system set job_queue_processes=0;

System altered.

SQL> alter system set aq_tm_processes=0;

System altered.

SQL> alter database open;

Database altered.

SQL> set linesize 120;
SQL> alter database character set zhs16gbk;
alter database character set zhs16gbk
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set

SQL> ALTER DATABASE character set INTERNAL_USE zhs16gbk;

# 使用INTERNAL_USE可以跳过超集的检查,

(ALTER DATABASE character set INTERNAL_USE )

Database altered.
SQL> shutdown immediate;      ---再停止数据库
Database closed.
Database dismounted.
ORACLE instance shut down.

---启动数据库
SQL> STARTUP
ORACLE instance started.

Total System Global Area 235999352 bytes
Fixed Size 450680 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
SQL>



----再次查看当前字符集

SQL> select name,value$ from props$ where name like '%NLS%';

NAME
------------------------------
VALUE$
--------------------------------------------------------------------------------
NLS_LANGUAGE
SIMPLIFIED CHINESE

NLS_TERRITORY
CHINA

NLS_CURRENCY
?


NAME
------------------------------
VALUE$
--------------------------------------------------------------------------------
NLS_ISO_CURRENCY
CHINA

NLS_NUMERIC_CHARACTERS
.,

NLS_CHARACTERSET
ZHS16GBK  ---【已经修改成为中文编码了】


原文链接:http://www.linuxidc.com/Linux/2011-07/38114.htm
分享到:
评论

相关推荐

    oracle数据库字符集 无法修改数据库字符集 乱码

    Oracle数据库字符集是指用于表示数据库中所有字符数据的编码方式。它定义了如何将字符映射到二进制数据,从而确保数据在存储和处理过程中的正确性和一致性。Oracle数据库支持多种字符集,包括单字节字符集(如ASCII...

    Oracle数据库字符集问题解析.pdf

    "Oracle数据库字符集问题解析" Oracle 数据库字符集问题解析是 Oracle 数据库管理系统中一个非常重要的问题。字符集是创建数据库时设定的,在创建后通常不能更改。因此,字符集的设定是个非常关键的问 题,如果...

    oracle数据库中文乱码问题解决方案.docx

    Oracle数据库中文乱码问题解决方案 Oracle数据库中文乱码...Oracle数据库中文乱码问题的解决方案需要同时修改数据库服务器端和客户端的字符编码设置。通过正确的设置,可以确保中文字符在Oracle数据库中的正确显示。

    ORACLE数据库命名编码规范

    《ORACLE数据库命名编码规范详解》 一、编写目的与适用范围 ORACLE数据库命名编码规范的制定,旨在实现数据库命名及编码风格的标准化,从而提升数据库的可读性、可理解和可继承性,减少后期维护成本。此规范特别...

    字符集不同的Oracle数据库间交换数据的解决方法.pdf

    由于各种原因,HIS与医保采用的Oracle数据库字符集不同,从而使得数据库间的数据交换遇到很大的困难。医院HIS数据库采用的字符集为US7ASCII,而医保软件采用的字符集是ZHS16GBK。这两种字符集的不同,使得数据库间的...

    oracle数据库的字符集

    为了解决不同编码之间的兼容性和转换问题,1991年成立了Unicode协会,目的是为了统一字符编码标准,使每一个字符在全球范围内都有一个唯一的编码。Unicode最初的版本采用2字节(16位)进行编码,但很快就发现这仍然...

    对Oracle数据库字符集若干问题的探讨.pdf

    文章特别指出,互联网上流传的一些错误的修改Oracle数据库字符集的方法可能导致严重的后果。不正确的字符集转换可能会导致数据丢失、乱码或者无法正确读取数据。作者强调,对于字符集的修改必须谨慎对待,并给出了...

    Oracle 修改字符集

    ### Oracle 修改字符集 在Oracle数据库管理中,有时我们需要更改...通过以上步骤,我们可以安全地完成Oracle数据库字符集的修改。这不仅可以提高数据库的兼容性和性能,还可以帮助解决由字符集不匹配引起的各种问题。

    理解ORACLE数据库字符集

    【Oracle数据库字符集详解】 Oracle数据库字符集是其全球化支持(Globalization Support)的一部分,旨在为用户提供本地化的数据存储和处理环境。字符集是字符编码的集合,它为每个特定的符号分配一个唯一的数值...

    理解Oracle数据库字符集

    Oracle数据库字符集是其全球化支持(Globalization Support)的核心组成部分,也称为国家语言支持(NLS),目的是为了适应不同国家和地区用户的语言环境,包括日期、数字格式和特殊字符的存储和处理。Oracle提供了...

    Oracle数据库字符集问题分析及解决方法 (1).pdf

    Oracle数据库字符集问题分析及解决方法主要关注的是在数据库操作,特别是数据迁移过程中可能出现的字符编码不兼容问题。字符集是数据库系统中用于表示和存储文本数据的关键组成部分,不同的字符集支持不同的语言和...

    Oracle数据库字符集问题的研究.pdf

    Oracle数据库字符集问题主要涉及到数据库内部和客户端之间的字符编码匹配问题,这直接影响到包含中文字符的数据能否正确显示和处理。字符集的选择和配置是Oracle数据库管理和维护中的关键环节,尤其对于处理多语言...

    Oracle数据库字符集问题及其解决方法.pdf

    如果需要进行字符集转换,可以使用Oracle的`ALTER SYSTEM`命令更改数据库字符集,或者在导入导出时使用适当的字符集参数。在进行数据迁移时,务必先检查并调整所有相关环境的字符集设置,以避免数据丢失和乱码问题,...

    Oracle数据库字符集转换规律全面剖析

    Oracle数据库字符集转换规律全面剖析是一项关键的议题,尤其对于数据迁移、备份和恢复操作而言。Oracle数据库的字符集决定了如何存储和显示字符,不同字符集间的转换可能导致数据丢失或错误显示。在Export和Import...

    Oracle 数据库多语言入库问题的解决方案

    字符集是字符编码表,将字符与内码进行对应,使得不同语言的字符能在计算机系统中被识别和存储。ASCII编码是最基础的西方字符集,而GB2312、GBK、GB18030等是中国大陆常用的汉字字符集。Big5编码则用于繁体中文,...

    Oracle数据库字符集问题总结

    Oracle数据库字符集问题总结主要关注的是在数据迁移和交互时由于字符集差异导致的问题。字符集是决定数据库如何解释和存储字符的规则集合,对于Oracle数据库来说,它直接影响到数据的正确性和兼容性。 首先,Oracle...

    ORACLE数据库字符集[参考].pdf

    Oracle数据库字符集是Oracle全球化支持的核心组成部分,它允许数据库系统以用户本地的语言和格式存储、处理和检索数据。Oracle提供了广泛的语言和字符集支持,从早期的Oracle8i的48种语言和229种字符集,到Oracle9i...

    oracle英文字符集插入到中文字符集

    Oracle数据库系统支持多种字符集,字符集决定了数据库如何存储和显示字符。英文字符集通常包括ASCII或ISO-8859-1,而中文字符集如GBK、GB2312或UTF-8则能处理中文字符。当一个使用英文字符集的应用程序尝试与使用...

Global site tag (gtag.js) - Google Analytics