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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐