`
雨中伞
  • 浏览: 43342 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle 修改数据库的字符集编码为UTF-8

阅读更多

1、查看数据库字符集 ?
数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。
客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,
表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
会 话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。
客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session>环境变量>注册表>参数文件
字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是 American_America.zhs16gbk。

2、修改Oracle的字符集,如下例把字符集GB2312修改为UTF-8
步骤:
1.在SQL*PLUS 中,以DBA登录
conn 用户名 as sysdba
2.执行转换语句:
SHUTDOWN IMMEDIATE;
STARTUP MOUNT EXCLUSIVE;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE NATIONAL CHARACTER SET UTF8;
SHUTDOWN immediate;
startup;

注意:如果没有大对象,在使用过程中进行语言转换没有什么影响,(切 记设定的字符集必须是ORACLE支持,不然不能start)

按上面的做法就可以,但是可能会出现‘ORA-12717: Cannot ALTER DATABASE NATIONAL CHARACTER SET when
NCLOB data exists’ 这样的提示信息

要解决这个问题有两种方法

一个是,利用INTERNAL_USE 关键字修改区域设置,
还有一个是利用re-create,但是re-create有点复杂,所以请用internal_use,

SHUTDOWN IMMEDIATE;
STARTUP MOUNT EXCLUSIVE;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;
SHUTDOWN immediate;
startup;

如果按上面的做法做,National charset的区域设置就没有问题 。

分享到:
评论

相关推荐

    Oracle11g 字符集 AL32UTF8 修改为ZHS16GBK

    在Oracle11g环境下,可能会遇到需要更改数据库字符集的情况,例如从AL32UTF8修改为ZHS16GBK。这种变更通常发生在需要支持特定语言环境的应用场景中,尤其是当应用主要面向中文用户时,采用ZHS16GBK字符集可以更好地...

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

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

    Oracle 修改字符集

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

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

    Oracle数据库字符集是数据库系统中一个非常重要的概念,它决定了数据如何被编码和解码,影响着数据库中存储和检索的文本数据的正确性。在Oracle数据库中,字符集分为数据库字符集(Database Character Set)和国家...

    数据库编程之编码转换实例--乱码分析

    乱码通常发生在不同字符集之间转换时,例如从GBK编码转换到UTF-8编码,或者反之。当原始数据的编码与系统识别的编码不匹配时,就会出现无法正确显示的字符,也就是我们常说的乱码。 在数据库编程中,编码问题可能...

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

    例如,如果需要支持更多的国际字符或特殊符号,则可能需要将数据库字符集更改为AL32UTF8。这不仅能够提高数据处理的灵活性,还能确保数据的一致性和完整性。 #### 二、重要概念 1. **字符集**:用于表示文字和符号...

    理解ORACLE数据库字符集

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

    oracle字符集的查看和client字符集的修改

    这里的`AMERICAN_AMERICA`表示语言和地区,而`UTF8`则表示字符集编码。 #### 四、理解NLS_LANG参数 - **NLS_LANG**:该环境变量用于定义客户端的区域设置,包括语言、地区和字符集。 - **LANGUAGE**:指定客户端...

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

    Unicode编码方案,如UTF-16和UTF-8,是统一所有字符的标准,UTF-16使用2个字节表示一个字符,而UTF-8则是变长编码,字符长度可为1到3个字节。 字符集之间存在超级和子集的关系,如果字符集A的编码包含了B的所有编码...

    关于用oracle的dbms_xmldom导出xml文档编码格式UTF-8的问题总结

    根据提供的信息,最初尝试通过`dbms_xmldom.setCharset(doc, 'UTF8')`来设置XML文档的字符集为UTF-8,但是发现这种方法不起作用——导出的XML文档只包含`<?xml version="1.0"?>`,而没有指定编码格式。 #### 解决...

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

    本文将提供一个详细的解决方案,包括查看和修改数据库服务器端的字符编码、查看和修改客户端字符集的设置方法。 一、查看和修改数据库服务器端的字符编码 在Oracle数据库中,字符编码是由NLS_DATABASE_PARAMETERS...

    修改ORACLE11G字符集

    如果需要设置为UTF-8编码,则可以将其设为`SIMPLIFIED CHINESE_CHINA.AL32UTF8`。 此外,还可以通过执行`select userenv('language') from dual;`来检查客户端的语言设置是否正确。 #### 3. 修改数据库字符集 接...

    oracle修改字符集

    在使用Oracle数据库的过程中,有时会遇到需要更改数据库字符集的情况,比如将现有的字符集更改为与操作系统一致的字符集,以便更好地支持多语言环境或者解决数据导入导出时的字符编码问题。本文将详细介绍如何在...

    Oracle_字符集的查看和修改

    数据库字符集在创建数据库时指定,通常在创建后不能更改。创建数据库时,可以同时指定字符集 (CHARACTERSET) 和国家字符集 (NATIONALCHARACTERSET)。 - **字符集** 用于存储 CHAR、VARCHAR2、CLOB、LONG 等类型数据...

    理解Oracle数据库字符集

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

    java连接AmericanascII7字符集oracle例子

    在这种情况下,通常会考虑升级到支持更多字符的字符集,如AL32UTF8(Unicode UTF-8编码),以保证数据的正确显示和存储。 在实际项目中,还可能涉及到事务管理、异常处理、连接池配置等更复杂的操作。为了提高性能...

    oracle字符集查看与修改.pdf

    * UTF-8 是 Unicode 的 8 位编码方式,是一种变长多字节编码,这种编码可以用 1、2、3 个字节表示一个 Unicode 字符,AL32UTF8、UTF8、UTFE 是 UTF-8 编码字符集。 2.3 字符集超级 * 当一种字符集(字符集 A) 的...

    Oracle数据库字符集问题总结

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

Global site tag (gtag.js) - Google Analytics