oracle 11g数据库修改字符集

oracle 11g数据库修改字符集

NLS_CHARACTERSET我安装数据库的时候设置为ZHS16GBK,而开发需要的UTF8

据开发反应

向数据库表中插入一条数据的时候,中文就都变了类似于“?(是反问号)”的乱码,

为了能顺利插入成功,故做了此次修改;


查询字符集参数

    可以查询以下数据字典或视图查看字符集设置情况

    nls_database_parameters、props$、v$nls_parameters

    查询结果中NLS_CHARACTERSET表示字符集,NLS_NCHAR_CHARACTERSET表示国家字符集


修改步骤:

SQL> shutdown immediate;

SQL> startup mount;

SQL> alter system enable restricted session;

SQL> alter system set job_queue_processes=0;

SQL> alter database open;

SQL> alter database character set internal_use AL32UTF8(或者是UTF8);

SQL> shutdown immediate;

SQL> startup

SQL>alter system disable restricted session;


再次查看修改好了

SQL>  select * from nls_database_parameters;


PARAMETER       VALUE

------------------------------ --------------------

NLS_LANGUAGE       AMERICAN

NLS_TERRITORY       AMERICA

NLS_CURRENCY       $

NLS_ISO_CURRENCY       AMERICA

NLS_NUMERIC_CHARACTERS       .,

NLS_CHARACTERSET       AL32UTF8

NLS_CALENDAR       GREGORIAN

NLS_DATE_FORMAT       DD-MON-RR

NLS_DATE_LANGUAGE       AMERICAN

NLS_SORT       BINARY

NLS_TIME_FORMAT       HH.MI.SSXFF AM


PARAMETER       VALUE

------------------------------ --------------------

NLS_TIMESTAMP_FORMAT       DD-MON-RR HH.MI.SSXF

      F AM


NLS_TIME_TZ_FORMAT       HH.MI.SSXFF AM TZR

NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXF

      F AM TZR


NLS_DUAL_CURRENCY       $

NLS_COMP       BINARY

NLS_LENGTH_SEMANTICS       BYTE

NLS_NCHAR_CONV_EXCP       FALSE


PARAMETER       VALUE

------------------------------ --------------------

NLS_NCHAR_CHARACTERSET       AL16UTF16

NLS_RDBMS_VERSION       11.2.0.4.0


20 rows selected.


SQL>  select userenv(‘language‘) from dual;


USERENV(‘LANGUAGE‘)

----------------------------------------------------

AMERICAN_AMERICA.AL32UTF8


本文出自 “梦女孩” 博客,请务必保留此出处http://dreamgirl1314.blog.51cto.com/1159474/1649512

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。