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字符集的描述,希望会给你带来一些帮助在此方面。

  • 相关阅读:
    如何吸引小白用户爱上你的游戏?
    产品经理应聘之感受漫谈
    罗永浩Vs王自如:浮躁的世界该如何降温?!
    从锤子手机谈产品的逼格
    博客园与51CTO博客之产品用户体验分析
    web网站 Vs 移动App 谁更能打动你?之 产品经理篇
    不要只甘于做一个程序员
    我的程序员工作经历(二) 之 谈合作
    OpenCV 之 神经网络 (一)
    Qt 之 QtConcurrent
  • 原文地址:https://www.cnblogs.com/ylqmf/p/2452083.html
Copyright © 2011-2022 走看看