zoukankan      html  css  js  c++  java
  • 修改server端字符集

    修改server端字符集(不建议使用)

    在Oracle 8之前,可以用直接修改数据字典表props$来改变数据库的Oracle字符集。但Oracle8之后,至少有三张系统表记录了数据库字符集的信息,只改props$表并不完全,可能引起严重的后果。正确的修改方法如下:

    1. $sqlplus /nolog  
    2. SQL>conn / as sysdba;    

    若此时数据库服务器已启动,则先执行SHUTDOWN IMMEDIATE命令关闭数据库服务器,然后执行以下命令:

    1. SQL>STARTUP MOUNT;  
    2. SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;  
    3. SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;  
    4. SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;  
    5. SQL>ALTER DATABASE OPEN;  
    6. SQL>ALTER DATABASE CHARACTER SET ZHS16GBK;  
    7. SQL>ALTER DATABASE national CHARACTER SET ZHS16GBK;  
    8. SQL>SHUTDOWN IMMEDIATE;  
    9. SQL>STARTUP  

    注意:如果没有大对象,在使用过程中进行语言转换没有什么影响,(切记设定的Oracle字符集必须是Oracle支持,不然不能start) 按上面的做法就可以,但是可能会出现‘ORA-12717: Cannot ALTER DATABASE NATIONAL CHARACTER SET when NCLOB data exists’ 这样的提示信息

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

    一个是,利用INTERNAL_USE 关键字修改区域设置,

    还有一个是利用re-create,但是re-create有点复杂,所以请用internal_use,

    1. SQL>SHUTDOWN IMMEDIATE;  
    2. SQL>STARTUP MOUNT EXCLUSIVE;  
    3. SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;  
    4. SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;  
    5. SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;  
    6. SQL>ALTER DATABASE OPEN;  
    7. SQL>ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;  
    8. SQL>SHUTDOWN immediate;  
    9. SQL>startup;  

    如果按上面的做法做,National charset的区域设置就没有问题上述的相关内容就是对修改Oracle字符集的描述,希望会给你带来一些帮助在此方面。

  • 相关阅读:
    yes---重复输出指定的字符串
    info---Linux下info格式的帮助指令。
    hostid---打印当前主机的十六进制数字标识
    clear---清除当前屏幕
    whoami---打印当前有效的用户名称
    users---显示当前登录系统的所有用户的用户列表
    md5sum---文件校验和
    mesg---设置当前终端的写权限
    man帮助
    whatis---查询一个命令执行什么功能
  • 原文地址:https://www.cnblogs.com/ylqmf/p/2452083.html
Copyright © 2011-2022 走看看