Oracle 中文乱码问题

    技术2022-05-20  34

    Oracle 10g Express Edition是Oracle专门为小型用户提供的免费版本。Oracle XE十分小巧,安装简单,可供第三方软件开发商部署较小的应用。 不过Oracle XE目前的beta2缺省安装的字符集是WE8MSWIN1252,不是中文字符集,并且不能通过直接运行 alter database character set ZHS16GBK ; 来修改,因为ZHS16GBK不是缺省字符集的超集。 过去流传很广的直接修改sys用户下的PROPS$表的方法,也会给字符集的变更留下很多潜在的问题.

     

    查询oracle 字符集

     

    查看oracel server端的字符集 select userenv('language') from dual; 1              SIMPLIFIED CHINESE_CHINA.AL32UTF8

     

    查看oracel client端的字符集   是注册表里面相应OracleHome的NLS_LANG。还可以在dos窗口里面自己设置,比如:   set nls_lang=AMERICAN_AMERICA.ZHS16GBK   这样就只影响这个窗口里面的环境变量。

     

     

    解决方案:

    不过在安装完Oracle XE后,可以在sqlplus(即Oracle XE的run SQL command line)中, 进行如下的操作来修改字符集: connect system/oracle9i as sysdba shutdown immediate startup mount alter system enable restricted session ; alter system set JOB_QUEUE_PROCESSES=0; alter system set AQ_TM_PROCESSES=0; alter database open ; alter database character set internal_use ZHS16GBK ; shutdown immediate startup 这样字符集的修改就完成了

     


    最新回复(0)