`
fanbina6
  • 浏览: 41550 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

oracle server端字符集修改(转)

阅读更多
http://blog.csdn.net/cxxlinux/article/details/5299464(转)

server端字符集修改

*****************************************************************

* 更改字符集步骤方法(WE8ISO8859P1 --> ZHS16GBK)            *

*****************************************************************

SQL>

将数据库启动到RESTRICTED模式下做字符集更改:

SQL> conn /as sysdba

Connected.


SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.


SQL> startup mount

ORACLE instance started.

Total System Global Area 236000356 bytes

Fixed Size                   451684 bytes

Variable Size             201326592 bytes

Database Buffers           33554432 bytes

Redo Buffers                 667648 bytes

Database mounted.


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> 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;

Database altered.


SQL> select * from v$nls_parameters;



19 rows selected.

重启检查是否更改完成:

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.


SQL> startup

ORACLE instance started.

Total System Global Area 236000356 bytes

Fixed Size                   451684 bytes

Variable Size             201326592 bytes

Database Buffers           33554432 bytes

Redo Buffers                 667648 bytes

Database mounted.

Database opened.


SQL> select * from v$nls_parameters;



19 rows selected.


我们看到这个过程和之前ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使

Oracle数据库绕过了子集与超集的校验.

这一方法在某些方面是有用处的,比如测试;应用于产品环境大家应该格外小心,除了你以外,没有人会为此带来的后果负责:

结语(我们不妨再说一次):

对于DBA来说,有一个很重要的原则就是:不要把你的数据库置于危险的境地!

这就要求我们,在进行任何可能对数据库结构发生改变的操作之前,先做有效的备份,很多DBA没有备份的操作中得到了惨痛的教训
分享到:
评论

相关推荐

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

    "Oracle英文字符集插入到中文字符集"的主题聚焦于如何在不同字符集之间进行有效转换,以便在不修改客户端环境变量的情况下,实现数据的正确存储和检索。 Oracle数据库系统支持多种字符集,字符集决定了数据库如何...

    问题共享:修改oracle字符集

    完成上述步骤后,建议进行一系列测试以验证字符集修改是否成功。特别需要注意的是,尽管数据库中的阿拉伯语信息可以在页面上正常显示,但在某些客户端工具(如SQL*Plus)中可能仍然会出现乱码。此时,需要进一步排查...

    ORACLE数据库字符集设置

    1. **更改数据库字符集**:如果需要更改整个数据库的字符集,可以使用Oracle提供的工具DBMS_ENCODING_CONVERT来进行转换。需要注意的是,此操作可能会影响大量数据,并且需要有足够的磁盘空间和时间。 2. **使用...

    Oracle10G_RAC环境下字符集

    总结,修改Oracle 10g RAC环境下的字符集是一个涉及多个步骤的过程,包括停机、修改参数、启动实例以及验证更改。这个过程需要细心操作,确保所有节点的一致性,以保证数据库的正常运行和数据的正确性。同时,理解...

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

    - **查询Oracle server端的字符集**:可以登录到数据库并执行SQL语句`SELECT userenv('language') FROM dual;`来获取当前会话的字符集信息。 - **查询Oracle client端的字符集**:在Windows上,可以通过查看注册表的...

    Oracle数据库字符集问题总结

    例如,在Windows Server 2008 64位系统中安装的Oracle 64位数据库,可能默认设置为AL16UTF16,这种字符集每个汉字占用3个字节,适用于Unicode字符集,能支持多种语言。然而,如果业务需求更倾向于节省存储空间或特定...

    oracle查看字符集后修改oracle服务端和客户端字符集的步骤

    server字符集修改: 将数据库启动到RESTRICTED模式下做字符集更改: 代码如下:SQL>conn /as sysdba SQL>shutdown immediate;  SQL>startup mount SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;  SQL>ALTER ...

    解决ORACLE字符集转化的方法技术.pdf

    在数据库领域,字符集转换是一项关键任务,尤其是在不同版本或平台的Oracle数据库间进行数据迁移时。本文主要讨论了如何解决Oracle数据库从UTF8字符集(AI32UTF8)向ASCII字符集(US7ASCII)转换的问题,以及在此...

    oracle安装及导入数据出现的问题及解决

    安装时先决条件不满足的解决方法、oracle server端字符集查询方法、server端字符集修改方法以及dmp文件字符集修改方法

    SQL-SERVER-64位配置ORACLE连接-中文乱码问题

    当SQL Server尝试通过ODBC或JDBC等方式连接到Oracle数据库时,如果两个系统的字符集设置不一致,就可能会导致中文字符显示为乱码。这个问题在64位操作系统上尤其常见,因为不同的数据库管理系统(DBMS)之间可能存在...

    ORACLE和SQL Server的语法区别

    ### ORACLE和SQL Server的语法区别 #### 一、概述 本文主要介绍Oracle与SQL Server在SQL语言层面的异同之处,重点在于Transact-SQL(T-SQL)与PL/SQL之间的区别,并提供了一些迁移策略。对于希望将现有的Oracle...

    navicat链接oracle提示资源包适合各种版本

    2. **调整服务器字符集**:如果不能或不想升级Instant Client,可以考虑更改Oracle服务器的字符集设置。这通常涉及到修改数据库实例的初始化参数文件(如`init.ora`或`spfile.ora`),将`NLS_CHARACTERSET`参数设置...

    关于Oracle数据库中的汉字显示总结

    1. **字符集与国家字符集**:在Oracle数据库中,主要涉及到两种字符集概念——服务器字符集(SERVERCHARSET)和国家字符集(NATIONALCHARACTERSET)。服务器字符集主要用于存储和处理数据库中的数据,而国家字符集则...

    MYSQL字符集与乱码问题分析

    通过修改my.cnf或my.ini配置文件中的`character_set_server`和`collation_server`参数,可以全局设置MySQL的字符集和排序规则。使用`SHOW VARIABLES LIKE 'char%'`命令可查看当前配置。 #### 字符集相关BUG分析 ...

    oci.dll,Navacat连接Oracle数据库的时候ORA-12737

    4. **联系数据库管理员**:如果服务器端字符集确实不被支持,可能需要联系数据库管理员,询问是否可以更改服务器的字符集,或者获取一个兼容的数据库连接字符串。 5. **使用其他工具**:如果以上方法都不可行,可以...

    navicat链接oracle提示:“ORA-12737”资源包

    - **服务器字符集调整**:如果条件允许,也可以尝试修改服务器端的字符集设置,使其使用Instant Client Light支持的字符集。但这可能会影响到其他依赖于当前字符集的应用。 - **客户端编码转换**:在Navicat中配置...

    oracle 客户端不支持中文解决办法

    在Linux环境下安装Oracle数据库时,如果默认的字符集设置为WE8ISO8859P1,将无法支持中文字符。具体表现为,在客户端录入中文数据时能够正常显示,但提交后再次查询时中文会显示为乱码(如“???”)。这一现象主要是...

    解决数据库字符集问题

    ### 解决数据库字符集问题 #### 一、背景与意义 在数据库管理和应用开发过程中,字符集不匹配或设置不当可能会导致数据存储错误、查询结果乱码等问题,严重影响数据的准确性和系统的可用性。因此,了解如何正确...

    Linux上安装Oracle汉字乱码完整解决方案_javacn

    - 如需更改已存在的数据库字符集,需要谨慎操作,因为这可能涉及大量数据的转换。 7. **调整NLS参数**: - 对于已存在的数据库,可能需要修改`NLS_CHARACTERSET`和`NLS_NCHAR_CHARACTERSET`参数。但这通常需要停...

    Oracle和SqlServer系统表操作差异对比

    - "ORA-12704: 字符集不匹配" 错误通常与字符集不兼容有关。解决方法是在字符串前添加 "N",如 `N'your_string'`,以表明它是 Unicode 字符串。 4. **Clob 类型转换**: - "ORA-00932: 不一致的数据类型" 错误...

Global site tag (gtag.js) - Google Analytics