• [转载]ORACLE字符集设置


    原文地址:ORACLE字符集设置作者:raining
    最近新创建一个数据库,插入数据后竟然发现中文字符在数据库中显示为????,原来看过关于oracle字符集的文章,知道是字符集设置问题。在网上搜了些资料,修改了oracle的字符集,总结了一下。 
     
    首先用sys用户登陆oracle
    #sqlplus /nolog
    SQL>conn sys/sys@score as sysdba;
     
    查看服务器端字符集:
    SQL>SELECT * FROM NLS_DATABASE_PARAMETERS;
    看输出的NLS_CHARACTERSET 字段值,我原来的值是ISO88什么的,不正确。正确的一般服务器端为:ZHS16GBK,客户端也为:ZHS16GBK。
    修改开始
     
    先停止本数据库服务:
    SQL>shutdown immediate;
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    这些信息是更改正确字符集后的提示信息,一般应该是英文的)

     

    再启动数据库

    SQL>startup   restrict;   此处要注意启动方式要加 restrict参数
    ORACLE 例程已经启动。

    Total System Global Area  603979776 bytes
    Fixed Size                  1220796 bytes
    Variable Size             180358980 bytes
    Database Buffers          415236096 bytes
    Redo Buffers                7163904 bytes
    数据库装载完毕。
    数据库已经打开。

     

    修改字符集

    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> alter database character set zhs16gbk;
     Database altered.

    有时执行alter database character set zhs16gbk;语句时会报错:

    ORA-12712: new character set must be a superset of old character set

    意思是新字符集不是原字符集超集,例如原字符集为ZHS16CGB231280,新字符集zhs16gbk,虽然新字符集比原字符集大,但不存在父子关系,通过以下语句会跳过超集检查:

    SQL> alter database character set INTERNAL_USE ZHS16GBK;  

     

    重启数据库

    SQL> shutdown immediate;

    SQL> startup;

    没错误提示就成功了。
     
    windows客户端更改字符集
    在命令提示符下执行D:SET NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 或者修改注册表里的HKEY_LOCAL_MACHINESOFTWAREOracleHOME0下,nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
     
    再此查看服务器端和客户端字符集设置应该已经修该过来了。
     
    刚开始我用的是“update props$ set value$='ZHS16GBK' WHERE NAME='NLS_CHARACTERSET';”语句来修改的服务器端字符集,修改后客户端连接时总提示有错误,看来是有问题的,网上搜了下,8i后是不可以用这个方法修改的。
    有用的两个连接:
     
     
     
  • 相关阅读:
    图像梯度计算
    图像轮廓检测
    元组()
    SwiftUI 概览
    TCL 语言概览
    列表 []
    Numpy 矩阵计算
    图像平滑(滤波)
    language="JavaScript"与type="text/javascript"
    调用接口, Test.java(不用任何包, MD5大写32位加密,HttpURLConnection)
  • 原文地址:https://www.cnblogs.com/liuzhuqing/p/7481046.html
Copyright © 2020-2023  润新知